home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Environments / Oberon⁄F™ 1.2 / Preinstalled version / Form / Mod / Models < prev    next >
MacBinary  |  1996-07-08  |  19.0 KB  |  [oODC/obnF]

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was processed as: MacBinary (archive/macBinary).

You can browse this item here: Models

ConfidenceProgramDetectionMatch TypeSupport
10% dexvert MacBinary (archive/macBinary) fallback Supported
10% dexvert Jesper Olsen Module (music/jesperOlsen) magic Supported
100% file MacBinary II, inited, Mon Jul 8 09:37:01 1996, modified Mon Jul 8 09:37:17 1996, creator 'obnF', type 'oODC', 18868 bytes "Models" , at 0x4a34 318 bytes resource default (weak)
99% file data default
66% TrID TTComp archive compressed (bin-4K) default (weak)
33% TrID MacBinary 2 default (weak)
100% lsar MacBinary default


id metadata
keyvalue
macFileType[oODC]
macFileCreator[obnF]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 06 4d 6f 64 65 6c 73 | 00 00 00 00 00 00 00 00 |..Models|........|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 6f 4f 44 43 6f 62 6e | 46 01 00 00 00 00 00 00 |.oODCobn|F.......|
|00000050| 00 00 00 00 00 49 b4 00 | 00 01 3e ae 06 bf 7d ae |.....I..|..>...}.|
|00000060| 06 bf 8d 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 26 b1 00 00 |........|....&...|
|00000080| 43 44 4f 6f 00 00 00 00 | 82 f1 44 6f 63 75 6d 65 |CDOo....|..Docume|
|00000090| 6e 74 73 2e 53 74 64 44 | 6f 63 75 6d 65 6e 74 44 |nts.StdD|ocumentD|
|000000a0| 65 73 63 00 f1 44 6f 63 | 75 6d 65 6e 74 73 2e 44 |esc..Doc|uments.D|
|000000b0| 6f 63 75 6d 65 6e 74 44 | 65 73 63 00 f1 43 6f 6e |ocumentD|esc..Con|
|000000c0| 74 61 69 6e 65 72 73 2e | 56 69 65 77 44 65 73 63 |tainers.|ViewDesc|
|000000d0| 00 f1 56 69 65 77 73 2e | 56 69 65 77 44 65 73 63 |..Views.|ViewDesc|
|000000e0| 00 f0 53 74 6f 72 65 73 | 2e 53 74 6f 72 65 44 65 |..Stores|.StoreDe|
|000000f0| 73 63 00 00 00 00 00 00 | 00 00 00 07 00 00 00 31 |sc......|.......1|
|00000100| 49 00 00 00 00 00 83 f1 | 44 6f 63 75 6d 65 6e 74 |I.......|Document|
|00000110| 73 2e 4d 6f 64 65 6c 44 | 65 73 63 00 f1 43 6f 6e |s.ModelD|esc..Con|
|00000120| 74 61 69 6e 65 72 73 2e | 4d 6f 64 65 6c 44 65 73 |tainers.|ModelDes|
|00000130| 63 00 f1 4d 6f 64 65 6c | 73 2e 4d 6f 64 65 6c 44 |c..Model|s.ModelD|
|00000140| 65 73 63 00 f1 53 74 6f | 72 65 73 2e 45 6c 65 6d |esc..Sto|res.Elem|
|00000150| 44 65 73 63 00 f2 04 00 | 00 00 00 00 00 00 7f 48 |Desc....|.......H|
|00000160| 00 00 09 00 00 00 77 48 | 00 00 00 00 00 00 00 82 |......wH|........|
|00000170| f1 54 65 78 74 56 69 65 | 77 73 2e 53 74 64 56 69 |.TextVie|ws.StdVi|
|00000180| 65 77 44 65 73 63 00 f1 | 54 65 78 74 56 69 65 77 |ewDesc..|TextView|
|00000190| 73 2e 56 69 65 77 44 65 | 73 63 00 f2 02 00 00 00 |s.ViewDe|sc......|
|000001a0| 00 00 00 00 00 00 00 00 | 07 00 00 00 21 48 00 00 |........|....!H..|
|000001b0| 00 00 00 83 f1 54 65 78 | 74 4d 6f 64 65 6c 73 2e |.....Tex|tModels.|
|000001c0| 53 74 64 4d 6f 64 65 6c | 44 65 73 63 00 f1 54 65 |StdModel|Desc..Te|
|000001d0| 78 74 4d 6f 64 65 6c 73 | 2e 4d 6f 64 65 6c 44 65 |xtModels|.ModelDe|
|000001e0| 73 63 00 f2 06 00 00 00 | 00 00 00 00 23 46 00 00 |sc......|....#F..|
|000001f0| 0f 00 00 00 1b 46 00 00 | 00 00 00 00 00 00 89 06 |.....F..|........|
|00000200| 00 00 00 82 f1 54 65 78 | 74 4d 6f 64 65 6c 73 2e |.....Tex|tModels.|
|00000210| 41 74 74 72 69 62 75 74 | 65 73 44 65 73 63 00 f2 |Attribut|esDesc..|
|00000220| 04 00 00 00 00 00 00 00 | 2f 00 00 00 00 00 00 00 |........|/.......|
|00000230| 22 00 00 00 00 00 00 00 | 00 01 00 00 00 00 48 65 |".......|......He|
|00000240| 6c 76 65 74 69 63 61 00 | 7c be 01 00 00 00 00 00 |lvetica.||.......|
|00000250| 90 01 00 00 00 00 13 00 | 00 00 01 82 f2 0d 00 00 |........|........|
|00000260| 00 00 00 00 00 3b 00 00 | 00 00 00 00 00 22 00 00 |.....;..|....."..|
|00000270| 00 00 00 00 00 00 01 00 | 00 00 00 48 65 6c 76 65 |........|...Helve|
|00000280| 74 69 63 61 00 7c be 01 | 00 01 00 00 00 90 01 00 |tica.|..|........|
|00000290| 00 00 00 0a 00 00 00 01 | 00 00 00 00 c4 8e 07 00 |........|........|
|000002a0| b4 21 02 00 82 f1 53 74 | 64 53 74 61 6d 70 73 2e |.!....St|dStamps.|
|000002b0| 53 74 64 56 69 65 77 44 | 65 73 63 00 f2 03 00 00 |StdViewD|esc.....|
|000002c0| 00 00 00 00 00 23 00 00 | 00 00 00 00 00 10 00 00 |.....#..|........|
|000002d0| 00 00 00 00 cc 07 03 00 | 0a 00 10 00 32 00 06 00 |........|....2...|
|000002e0| 00 01 04 00 00 00 00 53 | 00 00 00 02 82 f2 0d 00 |.......S|........|
|000002f0| 00 00 00 00 00 00 44 04 | 00 00 00 00 00 00 22 00 |......D.|......".|
|00000300| 00 00 00 00 00 00 00 01 | 00 00 00 00 48 65 6c 76 |........|....Helv|
|00000310| 65 74 69 63 61 00 7c be | 01 00 00 00 00 00 bc 02 |etica.|.|........|
|00000320| 00 00 00 00 0b 00 00 00 | 00 15 00 00 00 01 26 00 |........|......&.|
|00000330| 00 00 00 03 00 00 00 02 | 0b 00 00 00 00 15 00 00 |........|........|
|00000340| 00 01 25 00 00 00 00 03 | 00 00 00 01 2b 00 00 00 |..%.....|....+...|
|00000350| 00 43 00 00 00 01 15 00 | 00 00 00 04 00 00 00 02 |.C......|........|
|00000360| 05 00 00 00 00 1c 00 00 | 00 02 09 00 00 00 00 2a |........|.......*|
|00000370| 00 00 00 02 09 00 00 00 | 00 20 00 00 00 02 0d 00 |........|. ......|
|00000380| 00 00 00 13 00 00 00 02 | 07 00 00 00 00 1e 00 00 |........|........|
|00000390| 00 02 0b 00 00 00 00 2d | 00 00 00 02 06 00 00 00 |.......-|........|
|000003a0| 00 1d 00 00 00 02 0a 00 | 00 00 00 21 00 00 00 01 |........|...!....|
|000003b0| 1f 00 00 00 00 1c 00 00 | 00 01 2f 00 00 00 00 0b |........|../.....|
|000003c0| 00 00 00 02 06 00 00 00 | 00 1d 00 00 00 02 0a 00 |........|........|
|000003d0| 00 00 00 14 00 00 00 02 | 09 00 00 00 00 21 00 00 |........|.....!..|
|000003e0| 00 01 41 00 00 00 00 1c | 00 00 00 01 19 00 00 00 |..A.....|........|
|000003f0| 00 0c 00 00 00 01 14 00 | 00 00 00 8f 00 00 00 01 |........|........|
|00000400| 37 00 00 00 00 a6 00 00 | 00 01 15 00 00 00 00 14 |7.......|........|
|00000410| 00 00 00 01 10 00 00 00 | 00 16 00 00 00 01 10 00 |........|........|
|00000420| 00 00 00 18 00 00 00 01 | 35 00 00 00 00 6a 00 00 |........|5....j..|
|00000430| 00 01 10 00 00 00 00 14 | 00 00 00 01 28 00 00 00 |........|....(...|
|00000440| 00 6a 00 00 00 01 10 00 | 00 00 00 14 00 00 00 01 |.j......|........|
|00000450| 2b 00 00 00 00 73 00 00 | 00 01 30 00 00 00 00 14 |+....s..|..0.....|
|00000460| 00 00 00 01 30 00 00 00 | 00 77 00 00 00 01 13 00 |....0...|.w......|
|00000470| 00 00 00 18 00 00 00 01 | 35 00 00 00 00 82 00 00 |........|5.......|
|00000480| 00 01 13 00 00 00 00 15 | 00 00 00 01 10 00 00 00 |........|........|
|00000490| 00 0f 00 00 00 02 03 00 | 00 00 00 03 00 00 00 02 |........|........|
|000004a0| 06 00 00 00 00 0e 00 00 | 00 01 24 00 00 00 00 04 |........|..$.....|
|000004b0| 00 00 00 01 0d 00 00 00 | 00 18 00 00 00 02 0b 00 |........|........|
|000004c0| 00 00 00 6c 00 00 00 02 | 06 00 00 00 00 69 00 00 |...l....|.....i..|
|000004d0| 00 02 0b 00 00 00 00 83 | 00 00 00 02 12 00 00 00 |........|........|
|000004e0| 00 b7 00 00 00 02 06 00 | 00 00 00 29 00 00 00 01 |........|...)....|
|000004f0| 4e 00 00 00 00 0a 00 00 | 00 02 04 00 00 00 00 2a |N.......|.......*|
|00000500| 00 00 00 02 06 00 00 00 | 00 14 00 00 00 01 11 00 |........|........|
|00000510| 00 00 00 0a 00 00 00 02 | 04 00 00 00 00 2a 00 00 |........|.....*..|
|00000520| 00 02 06 00 00 00 00 29 | 00 00 00 01 2c 00 00 00 |.......)|....,...|
|00000530| 00 0a 00 00 00 02 04 00 | 00 00 00 2a 00 00 00 02 |........|...*....|
|00000540| 08 00 00 00 00 19 00 00 | 00 01 33 00 00 00 00 0a |........|..3.....|
|00000550| 00 00 00 02 04 00 00 00 | 00 2c 00 00 00 02 04 00 |........|.,......|
|00000560| 00 00 00 25 00 00 00 01 | 11 00 00 00 00 0a 00 00 |...%....|........|
|00000570| 00 02 04 00 00 00 00 28 | 00 00 00 02 04 00 00 00 |.......(|........|
|00000580| 00 29 00 00 00 01 11 00 | 00 00 00 0a 00 00 00 02 |.)......|........|
|00000590| 04 00 00 00 00 28 00 00 | 00 02 09 00 00 00 00 22 |.....(..|......."|
|000005a0| 00 00 00 02 04 00 00 00 | 00 2d 00 00 00 02 09 00 |........|.-......|
|000005b0| 00 00 00 22 00 00 00 02 | 04 00 00 00 00 2d 00 00 |..."....|.....-..|
|000005c0| 00 02 06 00 00 00 00 28 | 00 00 00 02 04 00 00 00 |.......(|........|
|000005d0| 00 2a 00 00 00 02 08 00 | 00 00 00 18 00 00 00 02 |.*......|........|
|000005e0| 04 00 00 00 00 18 00 00 | 00 01 11 00 00 00 00 1c |........|........|
|000005f0| 00 00 00 02 03 00 00 00 | 00 16 00 00 00 02 04 00 |........|........|
|00000600| 00 00 00 13 00 00 00 01 | 0f 00 00 00 00 1a 00 00 |........|........|
|00000610| 00 02 09 00 00 00 00 16 | 00 00 00 02 06 00 00 00 |........|........|
|00000620| 00 2e 00 00 00 02 07 00 | 00 00 00 26 00 00 00 02 |........|...&....|
|00000630| 04 00 00 00 00 17 00 00 | 00 01 0e 00 00 00 00 19 |........|........|
|00000640| 00 00 00 02 03 00 00 00 | 00 16 00 00 00 01 2b 00 |........|......+.|
|00000650| 00 00 00 0a 00 00 00 02 | 04 00 00 00 00 28 00 00 |........|.....(..|
|00000660| 00 02 08 00 00 00 00 20 | 00 00 00 02 04 00 00 00 |....... |........|
|00000670| 00 18 00 00 00 01 0e 00 | 00 00 00 19 00 00 00 02 |........|........|
|00000680| 03 00 00 00 00 16 00 00 | 00 01 2b 00 00 00 00 0a |........|..+.....|
|00000690| 00 00 00 02 04 00 00 00 | 00 28 00 00 00 02 09 00 |........|.(......|
|000006a0| 00 00 00 29 00 00 00 01 | 4e 00 00 00 00 0a 00 00 |...)....|N.......|
|000006b0| 00 02 04 00 00 00 00 19 | 00 00 00 01 0e 00 00 00 |........|........|
|000006c0| 00 ad 00 00 00 02 06 00 | 00 00 00 a2 01 00 00 02 |........|........|
|000006d0| 06 00 00 00 00 14 04 00 | 00 01 1b 00 00 00 00 0c |........|........|
|000006e0| 01 00 00 01 2c 00 00 00 | 00 fd 02 00 00 02 14 00 |....,...|........|
|000006f0| 00 00 00 29 0a 00 00 02 | 06 00 00 00 00 d8 00 00 |...)....|........|
|00000700| 00 02 06 00 00 00 00 17 | 01 00 00 02 06 00 00 00 |........|........|
|00000710| 00 0a 00 00 00 02 06 00 | 00 00 00 ba 00 00 00 02 |........|........|
|00000720| 06 00 00 00 00 15 00 00 | 00 01 10 00 00 00 00 3b |........|.......;|
|00000730| 00 00 00 02 06 00 00 00 | 00 bc 00 00 00 03 82 f2 |........|........|
|00000740| 0d 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000750| 1f 00 00 00 00 00 00 00 | 00 01 00 00 00 00 47 65 |........|......Ge|
|00000760| 6e 65 76 61 00 7c be 01 | 00 00 00 00 00 90 01 00 |neva.|..|........|
|00000770| 00 00 00 f9 00 00 00 00 | 31 00 00 00 03 07 00 00 |........|1.......|
|00000780| 00 00 4a 00 00 00 02 06 | 00 00 00 00 97 00 00 00 |..J.....|........|
|00000790| 01 12 00 00 00 00 52 00 | 00 00 02 06 00 00 00 00 |......R.|........|
|000007a0| 10 00 00 00 01 0f 00 00 | 00 00 65 02 00 00 01 0f |........|..e.....|
|000007b0| 00 00 00 00 4f 02 00 00 | 01 10 00 00 00 00 f7 00 |....O...|........|
|000007c0| 00 00 01 0c 00 00 00 00 | 40 01 00 00 01 0c 00 00 |........|@.......|
|000007d0| 00 00 10 01 00 00 01 1f | 00 00 00 00 ab 00 00 00 |........|........|
|000007e0| 01 1f 00 00 00 00 3a 00 | 00 00 01 1e 00 00 00 00 |......:.|........|
|000007f0| 46 00 00 00 01 21 00 00 | 00 00 9e 00 00 00 01 1f |F....!..|........|
|00000800| 00 00 00 00 15 00 00 00 | 01 1e 00 00 00 00 3c 00 |........|......<.|
|00000810| 00 00 01 21 00 00 00 00 | 1f 00 00 00 01 15 00 00 |...!....|........|
|00000820| 00 00 0d 00 00 00 02 03 | 00 00 00 00 16 00 00 00 |........|........|
|00000830| 02 06 00 00 00 00 21 00 | 00 00 02 05 00 00 00 00 |......!.|........|
|00000840| a5 00 00 00 02 06 00 00 | 00 00 1b 00 00 00 02 04 |........|........|
|00000850| 00 00 00 00 a8 00 00 00 | 02 06 00 00 00 00 1a 00 |........|........|
|00000860| 00 00 02 07 00 00 00 00 | 2d 00 00 00 01 44 00 00 |........|-....D..|
|00000870| 00 00 a3 00 00 00 02 06 | 00 00 00 00 13 00 00 00 |........|........|
|00000880| 01 12 00 00 00 00 ad 00 | 00 00 ff 4d 4f 44 55 4c |........|...MODUL|
|00000890| 45 20 46 6f 72 6d 4d 6f | 64 65 6c 73 3b 0d 28 2a |E FormMo|dels;.(*|
|000008a0| 2a 20 4f 6d 49 6e 63 20 | 02 20 2a 2a 29 0d 0d 09 |* OmInc |. **)...|
|000008b0| 49 4d 50 4f 52 54 20 44 | 6f 6d 61 69 6e 73 2c 20 |IMPORT D|omains, |
|000008c0| 50 6f 72 74 73 2c 20 53 | 74 6f 72 65 73 2c 20 4d |Ports, S|tores, M|
|000008d0| 6f 64 65 6c 73 2c 20 56 | 69 65 77 73 2c 20 50 72 |odels, V|iews, Pr|
|000008e0| 6f 70 65 72 74 69 65 73 | 2c 20 43 6f 6e 74 61 69 |operties|, Contai|
|000008f0| 6e 65 72 73 3b 0d 0d 09 | 43 4f 4e 53 54 0d 09 09 |ners;...|CONST...|
|00000900| 6d 69 6e 56 69 65 77 53 | 69 7a 65 2a 20 3d 20 34 |minViewS|ize* = 4|
|00000910| 20 2a 20 50 6f 72 74 73 | 2e 70 6f 69 6e 74 3b 09 | * Ports|.point;.|
|00000920| 28 2a 2a 20 73 69 7a 65 | 20 6f 66 20 73 6d 61 6c |(** size| of smal|
|00000930| 6c 65 73 74 20 65 6d 62 | 65 64 64 65 64 20 76 69 |lest emb|edded vi|
|00000940| 65 77 20 2a 2a 29 0d 09 | 09 6d 61 78 56 69 65 77 |ew **)..|.maxView|
|00000950| 53 69 7a 65 2a 20 3d 20 | 31 30 30 30 20 2a 20 50 |Size* = |1000 * P|
|00000960| 6f 72 74 73 2e 6d 6d 3b | 09 28 2a 2a 20 73 69 7a |orts.mm;|.(** siz|
|00000970| 65 20 6f 66 20 6c 61 72 | 67 65 73 74 20 65 6d 62 |e of lar|gest emb|
|00000980| 65 64 64 65 64 20 76 69 | 65 77 20 2a 2a 29 0d 09 |edded vi|ew **)..|
|00000990| 09 28 2a 20 72 61 6e 67 | 65 20 6f 66 20 63 75 72 |.(* rang|e of cur|
|000009a0| 72 65 6e 74 6c 79 20 73 | 75 70 70 6f 72 74 65 64 |rently s|upported|
|000009b0| 20 76 65 72 73 69 6f 6e | 73 20 2a 29 0d 09 09 6d | version|s *)...m|
|000009c0| 69 6e 56 65 72 73 69 6f | 6e 20 3d 20 30 3b 20 6d |inVersio|n = 0; m|
|000009d0| 61 78 42 61 73 65 56 65 | 72 73 69 6f 6e 20 3d 20 |axBaseVe|rsion = |
|000009e0| 30 3b 20 6d 61 78 53 74 | 64 56 65 72 73 69 6f 6e |0; maxSt|dVersion|
|000009f0| 20 3d 20 30 3b 0d 0d 09 | 54 59 50 45 0d 09 09 28 | = 0;...|TYPE...(|
|00000a00| 2a 20 69 6e 74 65 72 66 | 61 63 65 20 74 79 70 65 |* interf|ace type|
|00000a10| 73 20 2a 29 0d 0d 09 09 | 4d 6f 64 65 6c 2a 20 3d |s *)....|Model* =|
|00000a20| 20 50 4f 49 4e 54 45 52 | 20 54 4f 20 4d 6f 64 65 | POINTER| TO Mode|
|00000a30| 6c 44 65 73 63 3b 0d 09 | 09 4d 6f 64 65 6c 44 65 |lDesc;..|.ModelDe|
|00000a40| 73 63 2a 20 3d 20 52 45 | 43 4f 52 44 20 28 43 6f |sc* = RE|CORD (Co|
|00000a50| 6e 74 61 69 6e 65 72 73 | 2e 4d 6f 64 65 6c 44 65 |ntainers|.ModelDe|
|00000a60| 73 63 29 20 45 4e 44 3b | 0d 0d 09 09 44 69 72 65 |sc) END;|....Dire|
|00000a70| 63 74 6f 72 79 2a 20 3d | 20 50 4f 49 4e 54 45 52 |ctory* =| POINTER|
|00000a80| 20 54 4f 20 44 69 72 65 | 63 74 6f 72 79 44 65 73 | TO Dire|ctoryDes|
|00000a90| 63 3b 0d 09 09 44 69 72 | 65 63 74 6f 72 79 44 65 |c;...Dir|ectoryDe|
|00000aa0| 73 63 2a 20 3d 20 52 45 | 43 4f 52 44 20 45 4e 44 |sc* = RE|CORD END|
|00000ab0| 3b 0d 0d 09 09 43 6f 6e | 74 65 78 74 2a 20 3d 20 |;....Con|text* = |
|00000ac0| 50 4f 49 4e 54 45 52 20 | 54 4f 20 43 6f 6e 74 65 |POINTER |TO Conte|
|00000ad0| 78 74 44 65 73 63 3b 0d | 09 09 43 6f 6e 74 65 78 |xtDesc;.|..Contex|
|00000ae0| 74 44 65 73 63 2a 20 3d | 20 52 45 43 4f 52 44 20 |tDesc* =| RECORD |
|00000af0| 28 4d 6f 64 65 6c 73 2e | 43 6f 6e 74 65 78 74 44 |(Models.|ContextD|
|00000b00| 65 73 63 29 20 45 4e 44 | 3b 0d 09 09 0d 09 09 0d |esc) END|;.......|
|00000b10| 09 09 52 65 61 64 65 72 | 2a 20 3d 20 50 4f 49 4e |..Reader|* = POIN|
|00000b20| 54 45 52 20 54 4f 20 52 | 65 61 64 65 72 44 65 73 |TER TO R|eaderDes|
|00000b30| 63 3b 0d 09 09 52 65 61 | 64 65 72 44 65 73 63 2a |c;...Rea|derDesc*|
|00000b40| 20 3d 20 52 45 43 4f 52 | 44 0d 09 09 09 76 69 65 | = RECOR|D....vie|
|00000b50| 77 2a 3a 20 56 69 65 77 | 73 2e 56 69 65 77 3b 09 |w*: View|s.View;.|
|00000b60| 28 2a 2a 20 6d 6f 73 74 | 20 72 65 63 65 6e 74 6c |(** most| recentl|
|00000b70| 79 20 72 65 61 64 20 76 | 69 65 77 20 2a 2a 29 0d |y read v|iew **).|
|00000b80| 09 09 09 6c 2a 2c 20 74 | 2a 2c 20 72 2a 2c 20 62 |...l*, t|*, r*, b|
|00000b90| 2a 3a 20 4c 4f 4e 47 49 | 4e 54 09 28 2a 2a 20 62 |*: LONGI|NT.(** b|
|00000ba0| 6f 75 6e 64 69 6e 67 20 | 62 6f 78 20 6f 66 20 6d |ounding |box of m|
|00000bb0| 6f 73 74 20 72 65 63 65 | 6e 74 6c 79 20 72 65 61 |ost rece|ntly rea|
|00000bc0| 64 20 76 69 65 77 20 2a | 2a 29 0d 09 09 45 4e 44 |d view *|*)...END|
|00000bd0| 3b 0d 0d 09 09 57 72 69 | 74 65 72 2a 20 3d 20 50 |;....Wri|ter* = P|
|00000be0| 4f 49 4e 54 45 52 20 54 | 4f 20 57 72 69 74 65 72 |OINTER T|O Writer|
|00000bf0| 44 65 73 63 3b 0d 09 09 | 57 72 69 74 65 72 44 65 |Desc;...|WriterDe|
|00000c00| 73 63 2a 20 3d 20 52 45 | 43 4f 52 44 20 45 4e 44 |sc* = RE|CORD END|
|00000c10| 3b 0d 0d 0d 09 09 55 70 | 64 61 74 65 4d 73 67 2a |;.....Up|dateMsg*|
|00000c20| 20 3d 20 52 45 43 4f 52 | 44 20 28 4d 6f 64 65 6c | = RECOR|D (Model|
|00000c30| 73 2e 55 70 64 61 74 65 | 4d 73 67 29 0d 09 09 09 |s.Update|Msg)....|
|00000c40| 28 2a 2a 20 74 68 65 20 | 72 65 63 65 69 76 65 72 |(** the |receiver|
|00000c50| 20 6f 66 20 74 68 69 73 | 20 6d 65 73 73 61 67 65 | of this| message|
|00000c60| 20 6d 75 73 74 20 6e 6f | 74 20 73 77 69 74 63 68 | must no|t switch|
|00000c70| 20 6f 6e 20 61 6e 79 20 | 6d 61 72 6b 73 20 2a 2a | on any |marks **|
|00000c80| 29 0d 09 09 09 6c 2a 2c | 20 74 2a 2c 20 72 2a 2c |)....l*,| t*, r*,|
|00000c90| 20 62 2a 3a 20 4c 4f 4e | 47 49 4e 54 09 28 2a 2a | b*: LON|GINT.(**|
|00000ca0| 20 28 6c 20 3c 20 72 29 | 20 26 20 28 62 20 3c 20 | (l < r)| & (b < |
|00000cb0| 74 29 20 2a 2a 29 0d 09 | 09 45 4e 44 3b 0d 0d 0d |t) **)..|.END;...|
|00000cc0| 09 09 28 2a 20 63 6f 6e | 63 72 65 74 65 20 74 79 |..(* con|crete ty|
|00000cd0| 70 65 73 20 2a 29 0d 0d | 09 09 53 74 64 4d 6f 64 |pes *)..|..StdMod|
|00000ce0| 65 6c 20 3d 20 50 4f 49 | 4e 54 45 52 20 54 4f 20 |el = POI|NTER TO |
|00000cf0| 53 74 64 4d 6f 64 65 6c | 44 65 73 63 3b 0d 09 09 |StdModel|Desc;...|
|00000d00| 53 74 64 43 6f 6e 74 65 | 78 74 20 3d 20 50 4f 49 |StdConte|xt = POI|
|00000d10| 4e 54 45 52 20 54 4f 20 | 53 74 64 43 6f 6e 74 65 |NTER TO |StdConte|
|00000d20| 78 74 44 65 73 63 3b 0d | 0d 09 09 53 74 64 4d 6f |xtDesc;.|...StdMo|
|00000d30| 64 65 6c 44 65 73 63 20 | 3d 20 52 45 43 4f 52 44 |delDesc |= RECORD|
|00000d40| 20 28 4d 6f 64 65 6c 44 | 65 73 63 29 0d 09 09 09 | (ModelD|esc)....|
|00000d50| 63 6f 6e 74 65 78 74 73 | 3a 20 53 74 64 43 6f 6e |contexts|: StdCon|
|00000d60| 74 65 78 74 09 28 2a 20 | 6c 69 73 74 20 6f 66 20 |text.(* |list of |
|00000d70| 76 69 65 77 73 20 69 6e | 20 66 6f 72 6d 2c 20 6f |views in| form, o|
|00000d80| 72 64 65 72 65 64 20 66 | 72 6f 6d 20 62 6f 74 74 |rdered f|rom bott|
|00000d90| 6f 6d 20 74 6f 20 74 6f | 70 20 2a 29 0d 09 09 45 |om to to|p *)...E|
|00000da0| 4e 44 3b 0d 0d 09 09 53 | 74 64 44 69 72 65 63 74 |ND;....S|tdDirect|
|00000db0| 6f 72 79 20 3d 20 50 4f | 49 4e 54 45 52 20 54 4f |ory = PO|INTER TO|
|00000dc0| 20 53 74 64 44 69 72 65 | 63 74 6f 72 79 44 65 73 | StdDire|ctoryDes|
|00000dd0| 63 3b 0d 09 09 53 74 64 | 44 69 72 65 63 74 6f 72 |c;...Std|Director|
|00000de0| 79 44 65 73 63 20 3d 20 | 52 45 43 4f 52 44 20 28 |yDesc = |RECORD (|
|00000df0| 44 69 72 65 63 74 6f 72 | 79 44 65 73 63 29 20 45 |Director|yDesc) E|
|00000e00| 4e 44 3b 0d 0d 09 09 53 | 74 64 43 6f 6e 74 65 78 |ND;....S|tdContex|
|00000e10| 74 44 65 73 63 20 3d 20 | 52 45 43 4f 52 44 20 28 |tDesc = |RECORD (|
|00000e20| 43 6f 6e 74 65 78 74 44 | 65 73 63 29 0d 09 09 09 |ContextD|esc)....|
|00000e30| 6e 65 78 74 3a 20 53 74 | 64 43 6f 6e 74 65 78 74 |next: St|dContext|
|00000e40| 3b 09 28 2a 20 6e 65 78 | 74 20 75 70 70 65 72 20 |;.(* nex|t upper |
|00000e50| 76 69 65 77 20 2a 29 0d | 09 09 09 66 6f 72 6d 3a |view *).|...form:|
|00000e60| 20 53 74 64 4d 6f 64 65 | 6c 3b 09 28 2a 20 66 6f | StdMode|l;.(* fo|
|00000e70| 72 6d 20 23 20 4e 49 4c | 20 2a 29 0d 09 09 09 76 |rm # NIL| *)....v|
|00000e80| 69 65 77 3a 20 56 69 65 | 77 73 2e 56 69 65 77 3b |iew: Vie|ws.View;|
|00000e90| 09 28 2a 20 76 69 65 77 | 20 23 20 4e 49 4c 20 2a |.(* view| # NIL *|
|00000ea0| 29 0d 09 09 09 6c 2c 20 | 74 2c 20 72 2c 20 62 3a |)....l, |t, r, b:|
|00000eb0| 20 4c 4f 4e 47 49 4e 54 | 09 28 2a 20 28 72 20 2d | LONGINT|.(* (r -|
|00000ec0| 20 6c 20 3e 3d 20 6d 69 | 6e 56 69 65 77 53 69 7a | l >= mi|nViewSiz|
|00000ed0| 65 29 20 26 20 28 62 20 | 2d 20 74 20 3e 3d 20 6d |e) & (b |- t >= m|
|00000ee0| 69 6e 56 69 65 77 53 69 | 7a 65 29 20 2a 29 0d 09 |inViewSi|ze) *)..|
|00000ef0| 09 45 4e 44 3b 0d 0d 09 | 09 53 74 64 52 65 61 64 |.END;...|.StdRead|
|00000f00| 65 72 20 3d 20 50 4f 49 | 4e 54 45 52 20 54 4f 20 |er = POI|NTER TO |
|00000f10| 53 74 64 52 65 61 64 65 | 72 44 65 73 63 3b 0d 09 |StdReade|rDesc;..|
|00000f20| 09 53 74 64 52 65 61 64 | 65 72 44 65 73 63 20 3d |.StdRead|erDesc =|
|00000f30| 20 52 45 43 4f 52 44 20 | 28 52 65 61 64 65 72 44 | RECORD |(ReaderD|
|00000f40| 65 73 63 29 0d 09 09 09 | 66 6f 72 6d 3a 20 53 74 |esc)....|form: St|
|00000f50| 64 4d 6f 64 65 6c 3b 09 | 28 2a 20 66 6f 72 6d 20 |dModel;.|(* form |
|00000f60| 23 20 4e 49 4c 20 2a 29 | 0d 09 09 09 70 6f 73 3a |# NIL *)|....pos:|
|00000f70| 20 53 74 64 43 6f 6e 74 | 65 78 74 09 28 2a 20 6e | StdCont|ext.(* n|
|00000f80| 65 78 74 20 52 65 61 64 | 56 69 65 77 3a 20 72 65 |ext Read|View: re|
|00000f90| 61 64 20 76 69 65 77 20 | 61 62 6f 76 65 20 70 6f |ad view |above po|
|00000fa0| 73 20 2a 29 0d 09 09 45 | 4e 44 3b 0d 0d 09 09 53 |s *)...E|ND;....S|
|00000fb0| 74 64 57 72 69 74 65 72 | 20 3d 20 50 4f 49 4e 54 |tdWriter| = POINT|
|00000fc0| 45 52 20 54 4f 20 53 74 | 64 57 72 69 74 65 72 44 |ER TO St|dWriterD|
|00000fd0| 65 73 63 3b 0d 09 09 53 | 74 64 57 72 69 74 65 72 |esc;...S|tdWriter|
|00000fe0| 44 65 73 63 20 3d 20 52 | 45 43 4f 52 44 20 28 57 |Desc = R|ECORD (W|
|00000ff0| 72 69 74 65 72 44 65 73 | 63 29 0d 09 09 09 66 6f |riterDes|c)....fo|
|00001000| 72 6d 3a 20 53 74 64 4d | 6f 64 65 6c 3b 09 28 2a |rm: StdM|odel;.(*|
|00001010| 20 66 6f 72 6d 20 23 20 | 4e 49 4c 20 2a 29 0d 09 | form # |NIL *)..|
|00001020| 09 09 70 6f 73 3a 20 53 | 74 64 43 6f 6e 74 65 78 |..pos: S|tdContex|
|00001030| 74 09 28 2a 20 6e 65 78 | 74 20 57 72 69 74 65 56 |t.(* nex|t WriteV|
|00001040| 69 65 77 3a 20 69 6e 73 | 65 72 74 20 76 69 65 77 |iew: ins|ert view|
|00001050| 20 61 62 6f 76 65 20 70 | 6f 73 20 2a 29 0d 09 09 | above p|os *)...|
|00001060| 45 4e 44 3b 0d 0d 0d 09 | 09 46 6f 72 6d 4f 70 20 |END;....|.FormOp |
|00001070| 3d 20 50 4f 49 4e 54 45 | 52 20 54 4f 20 46 6f 72 |= POINTE|R TO For|
|00001080| 6d 4f 70 44 65 73 63 3b | 0d 09 09 46 6f 72 6d 4f |mOpDesc;|...FormO|
|00001090| 70 44 65 73 63 20 3d 20 | 52 45 43 4f 52 44 20 28 |pDesc = |RECORD (|
|000010a0| 44 6f 6d 61 69 6e 73 2e | 4f 70 65 72 61 74 69 6f |Domains.|Operatio|
|000010b0| 6e 44 65 73 63 29 0d 09 | 09 09 64 65 6c 2c 20 69 |nDesc)..|..del, i|
|000010c0| 6e 73 3a 20 53 74 64 43 | 6f 6e 74 65 78 74 3b 09 |ns: StdC|ontext;.|
|000010d0| 28 2a 20 28 28 64 65 6c | 20 3d 20 4e 49 4c 29 20 |(* ((del| = NIL) |
|000010e0| 23 20 28 69 6e 73 20 3d | 20 4e 49 4c 29 29 20 4f |# (ins =| NIL)) O|
|000010f0| 52 20 28 64 65 6c 20 3d | 20 69 6e 73 29 20 2a 29 |R (del =| ins) *)|
|00001100| 0d 09 09 09 70 6f 73 3a | 20 53 74 64 43 6f 6e 74 |....pos:| StdCont|
|00001110| 65 78 74 09 28 2a 20 69 | 6e 73 20 23 20 4e 49 4c |ext.(* i|ns # NIL|
|00001120| 20 3d 3e 20 6e 65 78 74 | 20 44 6f 3a 20 69 6e 73 | => next| Do: ins|
|00001130| 65 72 74 20 69 6e 73 20 | 61 62 6f 76 65 20 70 6f |ert ins |above po|
|00001140| 73 20 2a 29 0d 09 09 45 | 4e 44 3b 0d 0d 09 09 52 |s *)...E|ND;....R|
|00001150| 65 73 69 7a 65 4f 70 20 | 3d 20 50 4f 49 4e 54 45 |esizeOp |= POINTE|
|00001160| 52 20 54 4f 20 52 65 73 | 69 7a 65 4f 70 44 65 73 |R TO Res|izeOpDes|
|00001170| 63 3b 0d 09 09 52 65 73 | 69 7a 65 4f 70 44 65 73 |c;...Res|izeOpDes|
|00001180| 63 20 3d 20 52 45 43 4f | 52 44 20 28 44 6f 6d 61 |c = RECO|RD (Doma|
|00001190| 69 6e 73 2e 4f 70 65 72 | 61 74 69 6f 6e 44 65 73 |ins.Oper|ationDes|
|000011a0| 63 29 0d 09 09 09 63 6f | 6e 74 65 78 74 3a 20 53 |c)....co|ntext: S|
|000011b0| 74 64 43 6f 6e 74 65 78 | 74 3b 09 28 2a 20 63 6f |tdContex|t;.(* co|
|000011c0| 6e 74 65 78 74 20 23 20 | 4e 49 4c 20 2a 29 0d 09 |ntext # |NIL *)..|
|000011d0| 09 09 6c 2c 20 74 2c 20 | 72 2c 20 62 3a 20 4c 4f |..l, t, |r, b: LO|
|000011e0| 4e 47 49 4e 54 09 28 2a | 20 28 72 20 2d 20 6c 20 |NGINT.(*| (r - l |
|000011f0| 3e 3d 20 6d 69 6e 56 69 | 65 77 53 69 7a 65 29 20 |>= minVi|ewSize) |
|00001200| 26 20 28 62 20 2d 20 74 | 20 3e 3d 20 6d 69 6e 56 |& (b - t| >= minV|
|00001210| 69 65 77 53 69 7a 65 29 | 20 2a 29 0d 09 09 45 4e |iewSize)| *)...EN|
|00001220| 44 3b 0d 0d 09 09 52 65 | 70 6c 61 63 65 56 69 65 |D;....Re|placeVie|
|00001230| 77 4f 70 20 3d 20 50 4f | 49 4e 54 45 52 20 54 4f |wOp = PO|INTER TO|
|00001240| 20 52 65 70 6c 61 63 65 | 56 69 65 77 44 65 73 63 | Replace|ViewDesc|
|00001250| 3b 0d 09 09 52 65 70 6c | 61 63 65 56 69 65 77 44 |;...Repl|aceViewD|
|00001260| 65 73 63 20 3d 20 52 45 | 43 4f 52 44 20 28 44 6f |esc = RE|CORD (Do|
|00001270| 6d 61 69 6e 73 2e 4f 70 | 65 72 61 74 69 6f 6e 44 |mains.Op|erationD|
|00001280| 65 73 63 29 0d 09 09 09 | 63 6f 6e 74 65 78 74 3a |esc)....|context:|
|00001290| 20 53 74 64 43 6f 6e 74 | 65 78 74 3b 09 28 2a 20 | StdCont|ext;.(* |
|000012a0| 63 6f 6e 74 65 78 74 20 | 23 20 4e 49 4c 20 2a 29 |context |# NIL *)|
|000012b0| 0d 09 09 09 76 69 65 77 | 3a 20 56 69 65 77 73 2e |....view|: Views.|
|000012c0| 56 69 65 77 09 28 2a 20 | 76 69 65 77 20 23 20 4e |View.(* |view # N|
|000012d0| 49 4c 20 2a 29 0d 09 09 | 45 4e 44 3b 0d 0d 0d 09 |IL *)...|END;....|
|000012e0| 56 41 52 20 64 69 72 2d | 2c 20 73 74 64 44 69 72 |VAR dir-|, stdDir|
|000012f0| 2d 3a 20 44 69 72 65 63 | 74 6f 72 79 3b 09 28 2a |-: Direc|tory;.(*|
|00001300| 2a 20 28 64 69 72 20 23 | 20 4e 49 4c 29 20 26 20 |* (dir #| NIL) & |
|00001310| 28 73 74 64 44 69 72 20 | 23 20 4e 49 4c 29 20 2a |(stdDir |# NIL) *|
|00001320| 2a 29 0d 0d 0d 09 28 2a | 2a 20 4d 6f 64 65 6c 20 |*)....(*|* Model |
|00001330| 2a 2a 29 0d 0d 09 50 52 | 4f 43 45 44 55 52 45 20 |**)...PR|OCEDURE |
|00001340| 28 66 3a 20 4d 6f 64 65 | 6c 29 20 49 6e 74 65 72 |(f: Mode|l) Inter|
|00001350| 6e 61 6c 69 7a 65 2a 20 | 28 56 41 52 20 72 64 3a |nalize* |(VAR rd:|
|00001360| 20 53 74 6f 72 65 73 2e | 52 65 61 64 65 72 29 3b | Stores.|Reader);|
|00001370| 0d 09 09 56 41 52 20 74 | 68 69 73 56 65 72 73 69 |...VAR t|hisVersi|
|00001380| 6f 6e 3a 20 53 48 4f 52 | 54 49 4e 54 3b 0d 09 42 |on: SHOR|TINT;..B|
|00001390| 45 47 49 4e 0d 09 09 66 | 2e 49 6e 74 65 72 6e 61 |EGIN...f|.Interna|
|000013a0| 6c 69 7a 65 5e 28 72 64 | 29 3b 0d 09 09 49 46 20 |lize^(rd|);...IF |
|000013b0| 72 64 2e 63 61 6e 63 65 | 6c 6c 65 64 20 54 48 45 |rd.cance|lled THE|
|000013c0| 4e 20 52 45 54 55 52 4e | 20 45 4e 44 3b 0d 09 09 |N RETURN| END;...|
|000013d0| 72 64 2e 52 65 61 64 56 | 65 72 73 69 6f 6e 28 6d |rd.ReadV|ersion(m|
|000013e0| 69 6e 56 65 72 73 69 6f | 6e 2c 20 6d 61 78 42 61 |inVersio|n, maxBa|
|000013f0| 73 65 56 65 72 73 69 6f | 6e 2c 20 74 68 69 73 56 |seVersio|n, thisV|
|00001400| 65 72 73 69 6f 6e 29 0d | 09 45 4e 44 20 49 6e 74 |ersion).|.END Int|
|00001410| 65 72 6e 61 6c 69 7a 65 | 3b 0d 0d 09 50 52 4f 43 |ernalize|;...PROC|
|00001420| 45 44 55 52 45 20 28 66 | 3a 20 4d 6f 64 65 6c 29 |EDURE (f|: Model)|
|00001430| 20 45 78 74 65 72 6e 61 | 6c 69 7a 65 2a 20 28 56 | Externa|lize* (V|
|00001440| 41 52 20 77 72 3a 20 53 | 74 6f 72 65 73 2e 57 72 |AR wr: S|tores.Wr|
|00001450| 69 74 65 72 29 3b 0d 09 | 42 45 47 49 4e 0d 09 09 |iter);..|BEGIN...|
|00001460| 66 2e 45 78 74 65 72 6e | 61 6c 69 7a 65 5e 28 77 |f.Extern|alize^(w|
|00001470| 72 29 3b 0d 09 09 77 72 | 2e 57 72 69 74 65 56 65 |r);...wr|.WriteVe|
|00001480| 72 73 69 6f 6e 28 6d 61 | 78 42 61 73 65 56 65 72 |rsion(ma|xBaseVer|
|00001490| 73 69 6f 6e 29 0d 09 45 | 4e 44 20 45 78 74 65 72 |sion)..E|ND Exter|
|000014a0| 6e 61 6c 69 7a 65 3b 0d | 0d 09 50 52 4f 43 45 44 |nalize;.|..PROCED|
|000014b0| 55 52 45 20 28 66 3a 20 | 4d 6f 64 65 6c 29 20 47 |URE (f: |Model) G|
|000014c0| 65 74 45 6d 62 65 64 64 | 69 6e 67 4c 69 6d 69 74 |etEmbedd|ingLimit|
|000014d0| 73 2a 20 28 56 41 52 20 | 6d 69 6e 57 2c 20 6d 61 |s* (VAR |minW, ma|
|000014e0| 78 57 2c 20 6d 69 6e 48 | 2c 20 6d 61 78 48 3a 20 |xW, minH|, maxH: |
|000014f0| 4c 4f 4e 47 49 4e 54 29 | 3b 0d 09 42 45 47 49 4e |LONGINT)|;..BEGIN|
|00001500| 0d 09 09 6d 69 6e 48 20 | 3a 3d 20 6d 69 6e 56 69 |...minH |:= minVi|
|00001510| 65 77 53 69 7a 65 3b 20 | 6d 69 6e 57 20 3a 3d 20 |ewSize; |minW := |
|00001520| 6d 69 6e 56 69 65 77 53 | 69 7a 65 3b 0d 09 09 6d |minViewS|ize;...m|
|00001530| 61 78 48 20 3a 3d 20 6d | 61 78 56 69 65 77 53 69 |axH := m|axViewSi|
|00001540| 7a 65 3b 20 6d 61 78 57 | 20 3a 3d 20 6d 61 78 56 |ze; maxW| := maxV|
|00001550| 69 65 77 53 69 7a 65 0d | 09 45 4e 44 20 47 65 74 |iewSize.|.END Get|
|00001560| 45 6d 62 65 64 64 69 6e | 67 4c 69 6d 69 74 73 3b |Embeddin|gLimits;|
|00001570| 0d 0d 09 50 52 4f 43 45 | 44 55 52 45 20 28 66 3a |...PROCE|DURE (f:|
|00001580| 20 4d 6f 64 65 6c 29 20 | 49 6e 73 65 72 74 2a 20 | Model) |Insert* |
|00001590| 28 76 3a 20 56 69 65 77 | 73 2e 56 69 65 77 3b 20 |(v: View|s.View; |
|000015a0| 6c 2c 20 74 2c 20 72 2c | 20 62 3a 20 4c 4f 4e 47 |l, t, r,| b: LONG|
|000015b0| 49 4e 54 29 3b 0d 09 28 | 2a 2a 0d 09 09 76 20 23 |INT);..(|**...v #|
|000015c0| 20 4e 49 4c 09 32 30 0d | 09 09 76 2e 69 6e 69 74 | NIL.20.|..v.init|
|000015d0| 09 32 31 0d 09 09 76 2e | 63 6f 6e 74 65 78 74 20 |.21...v.|context |
|000015e0| 3d 20 4e 49 4c 09 32 32 | 0d 09 09 6c 20 3c 3d 20 |= NIL.22|...l <= |
|000015f0| 72 09 32 33 0d 09 09 74 | 20 3c 3d 20 62 09 32 34 |r.23...t| <= b.24|
|00001600| 0d 09 2a 2a 29 0d 09 42 | 45 47 49 4e 0d 09 09 48 |..**)..B|EGIN...H|
|00001610| 41 4c 54 28 31 32 37 29 | 0d 09 45 4e 44 20 49 6e |ALT(127)|..END In|
|00001620| 73 65 72 74 3b 0d 0d 09 | 50 52 4f 43 45 44 55 52 |sert;...|PROCEDUR|
|00001630| 45 20 28 66 3a 20 4d 6f | 64 65 6c 29 20 44 65 6c |E (f: Mo|del) Del|
|00001640| 65 74 65 2a 20 28 76 3a | 20 56 69 65 77 73 2e 56 |ete* (v:| Views.V|
|00001650| 69 65 77 29 3b 0d 09 28 | 2a 2a 20 76 20 69 6e 20 |iew);..(|** v in |
|00001660| 66 09 32 30 20 2a 2a 29 | 0d 09 42 45 47 49 4e 0d |f.20 **)|..BEGIN.|
|00001670| 09 09 48 41 4c 54 28 31 | 32 37 29 0d 09 45 4e 44 |..HALT(1|27)..END|
|00001680| 20 44 65 6c 65 74 65 3b | 0d 0d 09 50 52 4f 43 45 | Delete;|...PROCE|
|00001690| 44 55 52 45 20 28 66 3a | 20 4d 6f 64 65 6c 29 20 |DURE (f:| Model) |
|000016a0| 52 65 73 69 7a 65 2a 20 | 28 76 3a 20 56 69 65 77 |Resize* |(v: View|
|000016b0| 73 2e 56 69 65 77 3b 20 | 6c 2c 20 74 2c 20 72 2c |s.View; |l, t, r,|
|000016c0| 20 62 3a 20 4c 4f 4e 47 | 49 4e 54 29 3b 0d 09 28 | b: LONG|INT);..(|
|000016d0| 2a 2a 0d 09 09 76 20 69 | 6e 20 66 09 32 30 0d 09 |**...v i|n f.20..|
|000016e0| 09 6c 20 3c 3d 20 72 09 | 32 31 0d 09 09 74 20 3c |.l <= r.|21...t <|
|000016f0| 3d 20 62 09 32 32 0d 09 | 2a 2a 29 0d 09 42 45 47 |= b.22..|**)..BEG|
|00001700| 49 4e 0d 09 09 48 41 4c | 54 28 31 32 37 29 0d 09 |IN...HAL|T(127)..|
|00001710| 45 4e 44 20 52 65 73 69 | 7a 65 3b 0d 0d 09 50 52 |END Resi|ze;...PR|
|00001720| 4f 43 45 44 55 52 45 20 | 28 66 3a 20 4d 6f 64 65 |OCEDURE |(f: Mode|
|00001730| 6c 29 20 50 75 74 41 62 | 6f 76 65 2a 20 28 76 2c |l) PutAb|ove* (v,|
|00001740| 20 70 6f 73 3a 20 56 69 | 65 77 73 2e 56 69 65 77 | pos: Vi|ews.View|
|00001750| 29 3b 0d 09 28 2a 2a 0d | 09 09 76 20 69 6e 20 66 |);..(**.|..v in f|
|00001760| 09 32 30 0d 09 09 28 70 | 6f 73 20 3d 20 4e 49 4c |.20...(p|os = NIL|
|00001770| 29 20 4f 52 20 28 70 6f | 73 20 69 6e 20 66 29 09 |) OR (po|s in f).|
|00001780| 32 31 0d 09 2a 2a 29 0d | 09 42 45 47 49 4e 0d 09 |21..**).|.BEGIN..|
|00001790| 09 48 41 4c 54 28 31 32 | 37 29 0d 09 45 4e 44 20 |.HALT(12|7)..END |
|000017a0| 50 75 74 41 62 6f 76 65 | 3b 0d 0d 09 50 52 4f 43 |PutAbove|;...PROC|
|000017b0| 45 44 55 52 45 20 28 66 | 3a 20 4d 6f 64 65 6c 29 |EDURE (f|: Model)|
|000017c0| 20 4d 6f 76 65 2a 20 28 | 76 3a 20 56 69 65 77 73 | Move* (|v: Views|
|000017d0| 2e 56 69 65 77 3b 20 64 | 78 2c 20 64 79 3a 20 4c |.View; d|x, dy: L|
|000017e0| 4f 4e 47 49 4e 54 29 3b | 0d 09 28 2a 2a 20 76 20 |ONGINT);|..(** v |
|000017f0| 69 6e 20 66 09 32 30 20 | 2a 2a 29 0d 09 42 45 47 |in f.20 |**)..BEG|
|00001800| 49 4e 0d 09 09 48 41 4c | 54 28 31 32 37 29 0d 09 |IN...HAL|T(127)..|
|00001810| 45 4e 44 20 4d 6f 76 65 | 3b 0d 0d 09 50 52 4f 43 |END Move|;...PROC|
|00001820| 45 44 55 52 45 20 28 66 | 3a 20 4d 6f 64 65 6c 29 |EDURE (f|: Model)|
|00001830| 20 43 6f 70 79 2a 20 28 | 56 41 52 20 76 3a 20 56 | Copy* (|VAR v: V|
|00001840| 69 65 77 73 2e 56 69 65 | 77 3b 20 64 78 2c 20 64 |iews.Vie|w; dx, d|
|00001850| 79 3a 20 4c 4f 4e 47 49 | 4e 54 29 3b 0d 09 28 2a |y: LONGI|NT);..(*|
|00001860| 2a 20 76 20 69 6e 20 66 | 09 32 30 20 2a 2a 29 0d |* v in f|.20 **).|
|00001870| 09 42 45 47 49 4e 0d 09 | 09 48 41 4c 54 28 31 32 |.BEGIN..|.HALT(12|
|00001880| 37 29 0d 09 45 4e 44 20 | 43 6f 70 79 3b 0d 0d 09 |7)..END |Copy;...|
|00001890| 50 52 4f 43 45 44 55 52 | 45 20 28 66 3a 20 4d 6f |PROCEDUR|E (f: Mo|
|000018a0| 64 65 6c 29 20 4e 65 77 | 52 65 61 64 65 72 2a 20 |del) New|Reader* |
|000018b0| 28 6f 6c 64 3a 20 52 65 | 61 64 65 72 29 3a 20 52 |(old: Re|ader): R|
|000018c0| 65 61 64 65 72 3b 0d 09 | 42 45 47 49 4e 0d 09 09 |eader;..|BEGIN...|
|000018d0| 48 41 4c 54 28 31 32 37 | 29 0d 09 45 4e 44 20 4e |HALT(127|)..END N|
|000018e0| 65 77 52 65 61 64 65 72 | 3b 0d 0d 09 50 52 4f 43 |ewReader|;...PROC|
|000018f0| 45 44 55 52 45 20 28 66 | 3a 20 4d 6f 64 65 6c 29 |EDURE (f|: Model)|
|00001900| 20 4e 65 77 57 72 69 74 | 65 72 2a 20 28 6f 6c 64 | NewWrit|er* (old|
|00001910| 3a 20 57 72 69 74 65 72 | 29 3a 20 57 72 69 74 65 |: Writer|): Write|
|00001920| 72 3b 0d 09 42 45 47 49 | 4e 0d 09 09 48 41 4c 54 |r;..BEGI|N...HALT|
|00001930| 28 31 32 37 29 0d 09 45 | 4e 44 20 4e 65 77 57 72 |(127)..E|ND NewWr|
|00001940| 69 74 65 72 3b 0d 0d 09 | 50 52 4f 43 45 44 55 52 |iter;...|PROCEDUR|
|00001950| 45 20 28 66 3a 20 4d 6f | 64 65 6c 29 20 56 69 65 |E (f: Mo|del) Vie|
|00001960| 77 41 74 2a 20 28 78 2c | 20 79 3a 20 4c 4f 4e 47 |wAt* (x,| y: LONG|
|00001970| 49 4e 54 29 3a 20 56 69 | 65 77 73 2e 56 69 65 77 |INT): Vi|ews.View|
|00001980| 3b 0d 09 42 45 47 49 4e | 0d 09 09 48 41 4c 54 28 |;..BEGIN|...HALT(|
|00001990| 31 32 37 29 0d 09 45 4e | 44 20 56 69 65 77 41 74 |127)..EN|D ViewAt|
|000019a0| 3b 0d 0d 09 50 52 4f 43 | 45 44 55 52 45 20 28 66 |;...PROC|EDURE (f|
|000019b0| 3a 20 4d 6f 64 65 6c 29 | 20 4e 6f 66 56 69 65 77 |: Model)| NofView|
|000019c0| 73 2a 20 28 29 3a 20 49 | 4e 54 45 47 45 52 3b 0d |s* (): I|NTEGER;.|
|000019d0| 09 42 45 47 49 4e 0d 09 | 09 48 41 4c 54 28 31 32 |.BEGIN..|.HALT(12|
|000019e0| 37 29 0d 09 45 4e 44 20 | 4e 6f 66 56 69 65 77 73 |7)..END |NofViews|
|000019f0| 3b 0d 0d 0d 09 28 2a 2a | 20 44 69 72 65 63 74 6f |;....(**| Directo|
|00001a00| 72 79 20 2a 2a 29 0d 0d | 09 50 52 4f 43 45 44 55 |ry **)..|.PROCEDU|
|00001a10| 52 45 20 28 64 3a 20 44 | 69 72 65 63 74 6f 72 79 |RE (d: D|irectory|
|00001a20| 29 20 4e 65 77 2a 20 28 | 29 3a 20 4d 6f 64 65 6c |) New* (|): Model|
|00001a30| 3b 0d 09 42 45 47 49 4e | 0d 09 09 48 41 4c 54 28 |;..BEGIN|...HALT(|
|00001a40| 31 32 37 29 0d 09 45 4e | 44 20 4e 65 77 3b 0d 0d |127)..EN|D New;..|
|00001a50| 0d 09 28 2a 2a 20 43 6f | 6e 74 65 78 74 20 2a 2a |..(** Co|ntext **|
|00001a60| 29 0d 0d 09 50 52 4f 43 | 45 44 55 52 45 20 28 63 |)...PROC|EDURE (c|
|00001a70| 3a 20 43 6f 6e 74 65 78 | 74 29 20 54 68 69 73 4d |: Contex|t) ThisM|
|00001a80| 6f 64 65 6c 2a 20 28 29 | 3a 20 4d 6f 64 65 6c 3b |odel* ()|: Model;|
|00001a90| 0d 09 42 45 47 49 4e 0d | 09 09 52 45 54 55 52 4e |..BEGIN.|..RETURN|
|00001aa0| 20 4e 49 4c 0d 09 45 4e | 44 20 54 68 69 73 4d 6f | NIL..EN|D ThisMo|
|00001ab0| 64 65 6c 3b 0d 0d 09 50 | 52 4f 43 45 44 55 52 45 |del;...P|ROCEDURE|
|00001ac0| 20 28 63 3a 20 43 6f 6e | 74 65 78 74 29 20 47 65 | (c: Con|text) Ge|
|00001ad0| 74 52 65 63 74 2a 20 28 | 56 41 52 20 6c 2c 20 74 |tRect* (|VAR l, t|
|00001ae0| 2c 20 72 2c 20 62 3a 20 | 4c 4f 4e 47 49 4e 54 29 |, r, b: |LONGINT)|
|00001af0| 3b 0d 09 42 45 47 49 4e | 0d 09 09 48 41 4c 54 28 |;..BEGIN|...HALT(|
|00001b00| 31 32 37 29 0d 09 45 4e | 44 20 47 65 74 52 65 63 |127)..EN|D GetRec|
|00001b10| 74 3b 0d 0d 0d 09 28 2a | 2a 20 52 65 61 64 65 72 |t;....(*|* Reader|
|00001b20| 20 2a 2a 29 0d 0d 09 50 | 52 4f 43 45 44 55 52 45 | **)...P|ROCEDURE|
|00001b30| 20 28 72 3a 20 52 65 61 | 64 65 72 29 20 53 65 74 | (r: Rea|der) Set|
|00001b40| 2a 20 28 70 6f 73 3a 20 | 56 69 65 77 73 2e 56 69 |* (pos: |Views.Vi|
|00001b50| 65 77 29 3b 0d 09 28 2a | 2a 20 28 70 6f 73 20 3d |ew);..(*|* (pos =|
|00001b60| 20 4e 49 4c 29 20 4f 52 | 20 28 70 6f 73 20 69 6e | NIL) OR| (pos in|
|00001b70| 20 72 27 73 20 66 6f 72 | 6d 29 09 32 30 20 2a 2a | r's for|m).20 **|
|00001b80| 29 0d 09 42 45 47 49 4e | 0d 09 09 48 41 4c 54 28 |)..BEGIN|...HALT(|
|00001b90| 31 32 37 29 0d 09 45 4e | 44 20 53 65 74 3b 0d 0d |127)..EN|D Set;..|
|00001ba0| 09 50 52 4f 43 45 44 55 | 52 45 20 28 72 3a 20 52 |.PROCEDU|RE (r: R|
|00001bb0| 65 61 64 65 72 29 20 52 | 65 61 64 56 69 65 77 2a |eader) R|eadView*|
|00001bc0| 20 28 56 41 52 20 76 3a | 20 56 69 65 77 73 2e 56 | (VAR v:| Views.V|
|00001bd0| 69 65 77 29 3b 0d 09 42 | 45 47 49 4e 0d 09 09 48 |iew);..B|EGIN...H|
|00001be0| 41 4c 54 28 31 32 37 29 | 0d 09 45 4e 44 20 52 65 |ALT(127)|..END Re|
|00001bf0| 61 64 56 69 65 77 3b 0d | 0d 0d 09 28 2a 2a 20 57 |adView;.|...(** W|
|00001c00| 72 69 74 65 72 20 2a 2a | 29 0d 0d 09 50 52 4f 43 |riter **|)...PROC|
|00001c10| 45 44 55 52 45 20 28 77 | 3a 20 57 72 69 74 65 72 |EDURE (w|: Writer|
|00001c20| 29 20 53 65 74 2a 20 28 | 70 6f 73 3a 20 56 69 65 |) Set* (|pos: Vie|
|00001c30| 77 73 2e 56 69 65 77 29 | 3b 0d 09 28 2a 2a 20 28 |ws.View)|;..(** (|
|00001c40| 70 6f 73 20 3d 20 4e 49 | 4c 29 20 4f 52 20 28 70 |pos = NI|L) OR (p|
|00001c50| 6f 73 20 69 6e 20 77 27 | 73 20 66 6f 72 6d 29 09 |os in w'|s form).|
|00001c60| 32 30 20 2a 2a 29 0d 09 | 42 45 47 49 4e 0d 09 09 |20 **)..|BEGIN...|
|00001c70| 48 41 4c 54 28 31 32 37 | 29 0d 09 45 4e 44 20 53 |HALT(127|)..END S|
|00001c80| 65 74 3b 0d 0d 09 50 52 | 4f 43 45 44 55 52 45 20 |et;...PR|OCEDURE |
|00001c90| 28 77 3a 20 57 72 69 74 | 65 72 29 20 57 72 69 74 |(w: Writ|er) Writ|
|00001ca0| 65 56 69 65 77 2a 20 28 | 76 3a 20 56 69 65 77 73 |eView* (|v: Views|
|00001cb0| 2e 56 69 65 77 3b 20 6c | 2c 20 74 2c 20 72 2c 20 |.View; l|, t, r, |
|00001cc0| 62 3a 20 4c 4f 4e 47 49 | 4e 54 29 3b 0d 09 28 2a |b: LONGI|NT);..(*|
|00001cd0| 2a 0d 09 09 76 20 23 20 | 4e 49 4c 09 32 30 0d 09 |*...v # |NIL.20..|
|00001ce0| 09 76 2e 69 6e 69 74 09 | 32 31 0d 09 09 76 2e 63 |.v.init.|21...v.c|
|00001cf0| 6f 6e 74 65 78 74 20 3d | 20 4e 49 4c 09 32 32 0d |ontext =| NIL.22.|
|00001d00| 09 09 6c 20 3c 3d 20 72 | 09 32 33 0d 09 09 74 20 |..l <= r|.23...t |
|00001d10| 3c 3d 20 62 09 32 34 0d | 09 2a 2a 29 0d 09 42 45 |<= b.24.|.**)..BE|
|00001d20| 47 49 4e 0d 09 09 48 41 | 4c 54 28 31 32 37 29 0d |GIN...HA|LT(127).|
|00001d30| 09 45 4e 44 20 57 72 69 | 74 65 56 69 65 77 3b 0d |.END Wri|teView;.|
|00001d40| 0d 0d 09 28 2a 20 53 74 | 64 4d 6f 64 65 6c 20 2a |...(* St|dModel *|
|00001d50| 29 0d 0d 09 50 52 4f 43 | 45 44 55 52 45 20 54 68 |)...PROC|EDURE Th|
|00001d60| 69 73 43 6f 6e 74 65 78 | 74 20 28 66 3a 20 53 74 |isContex|t (f: St|
|00001d70| 64 4d 6f 64 65 6c 3b 20 | 76 69 65 77 3a 20 56 69 |dModel; |view: Vi|
|00001d80| 65 77 73 2e 56 69 65 77 | 29 3a 20 53 74 64 43 6f |ews.View|): StdCo|
|00001d90| 6e 74 65 78 74 3b 0d 09 | 09 56 41 52 20 63 3a 20 |ntext;..|.VAR c: |
|00001da0| 53 74 64 43 6f 6e 74 65 | 78 74 3b 0d 09 42 45 47 |StdConte|xt;..BEG|
|00001db0| 49 4e 0d 09 09 63 20 3a | 3d 20 66 2e 63 6f 6e 74 |IN...c :|= f.cont|
|00001dc0| 65 78 74 73 3b 20 57 48 | 49 4c 45 20 28 63 20 23 |exts; WH|ILE (c #|
|00001dd0| 20 4e 49 4c 29 20 26 20 | 28 63 2e 76 69 65 77 20 | NIL) & |(c.view |
|00001de0| 23 20 76 69 65 77 29 20 | 44 4f 20 63 20 3a 3d 20 |# view) |DO c := |
|00001df0| 63 2e 6e 65 78 74 20 45 | 4e 44 3b 0d 09 09 52 45 |c.next E|ND;...RE|
|00001e00| 54 55 52 4e 20 63 0d 09 | 45 4e 44 20 54 68 69 73 |TURN c..|END This|
|00001e10| 43 6f 6e 74 65 78 74 3b | 0d 0d 09 50 52 4f 43 45 |Context;|...PROCE|
|00001e20| 44 55 52 45 20 4e 65 77 | 43 6f 6e 74 65 78 74 20 |DURE New|Context |
|00001e30| 28 66 6f 72 6d 3a 20 53 | 74 64 4d 6f 64 65 6c 3b |(form: S|tdModel;|
|00001e40| 20 76 69 65 77 3a 20 56 | 69 65 77 73 2e 56 69 65 | view: V|iews.Vie|
|00001e50| 77 3b 20 6c 2c 20 74 2c | 20 72 2c 20 62 3a 20 4c |w; l, t,| r, b: L|
|00001e60| 4f 4e 47 49 4e 54 29 3a | 20 53 74 64 43 6f 6e 74 |ONGINT):| StdCont|
|00001e70| 65 78 74 3b 0d 09 09 56 | 41 52 20 63 3a 20 53 74 |ext;...V|AR c: St|
|00001e80| 64 43 6f 6e 74 65 78 74 | 3b 0d 09 42 45 47 49 4e |dContext|;..BEGIN|
|00001e90| 0d 09 09 41 53 53 45 52 | 54 28 66 6f 72 6d 20 23 |...ASSER|T(form #|
|00001ea0| 20 4e 49 4c 2c 20 32 30 | 29 3b 20 41 53 53 45 52 | NIL, 20|); ASSER|
|00001eb0| 54 28 76 69 65 77 2e 63 | 6f 6e 74 65 78 74 20 3d |T(view.c|ontext =|
|00001ec0| 20 4e 49 4c 2c 20 32 31 | 29 3b 0d 09 09 49 46 20 | NIL, 21|);...IF |
|00001ed0| 72 20 2d 20 6c 20 3c 20 | 6d 69 6e 56 69 65 77 53 |r - l < |minViewS|
|00001ee0| 69 7a 65 20 54 48 45 4e | 20 72 20 3a 3d 20 6c 20 |ize THEN| r := l |
|00001ef0| 2b 20 6d 69 6e 56 69 65 | 77 53 69 7a 65 20 45 4e |+ minVie|wSize EN|
|00001f00| 44 3b 0d 09 09 49 46 20 | 62 20 2d 20 74 20 3c 20 |D;...IF |b - t < |
|00001f10| 6d 69 6e 56 69 65 77 53 | 69 7a 65 20 54 48 45 4e |minViewS|ize THEN|
|00001f20| 20 62 20 3a 3d 20 74 20 | 2b 20 6d 69 6e 56 69 65 | b := t |+ minVie|
|00001f30| 77 53 69 7a 65 20 45 4e | 44 3b 0d 09 09 4e 45 57 |wSize EN|D;...NEW|
|00001f40| 28 63 29 3b 20 63 2e 66 | 6f 72 6d 20 3a 3d 20 66 |(c); c.f|orm := f|
|00001f50| 6f 72 6d 3b 20 63 2e 76 | 69 65 77 20 3a 3d 20 76 |orm; c.v|iew := v|
|00001f60| 69 65 77 3b 20 63 2e 6c | 20 3a 3d 20 6c 3b 20 63 |iew; c.l| := l; c|
|00001f70| 2e 74 20 3a 3d 20 74 3b | 20 63 2e 72 20 3a 3d 20 |.t := t;| c.r := |
|00001f80| 72 3b 20 63 2e 62 20 3a | 3d 20 62 3b 0d 09 09 76 |r; c.b :|= b;...v|
|00001f90| 69 65 77 2e 49 6e 69 74 | 43 6f 6e 74 65 78 74 28 |iew.Init|Context(|
|00001fa0| 63 29 3b 0d 09 09 52 45 | 54 55 52 4e 20 63 0d 09 |c);...RE|TURN c..|
|00001fb0| 45 4e 44 20 4e 65 77 43 | 6f 6e 74 65 78 74 3b 0d |END NewC|ontext;.|
|00001fc0| 0d 09 50 52 4f 43 45 44 | 55 52 45 20 49 6e 73 65 |..PROCED|URE Inse|
|00001fd0| 72 74 41 62 6f 76 65 20 | 28 63 2c 20 70 6f 73 3a |rtAbove |(c, pos:|
|00001fe0| 20 53 74 64 43 6f 6e 74 | 65 78 74 29 3b 0d 09 42 | StdCont|ext);..B|
|00001ff0| 45 47 49 4e 0d 09 09 49 | 46 20 70 6f 73 20 3d 20 |EGIN...I|F pos = |
|00002000| 4e 49 4c 20 54 48 45 4e | 0d 09 09 09 63 2e 6e 65 |NIL THEN|....c.ne|
|00002010| 78 74 20 3a 3d 20 4e 49 | 4c 3b 20 63 2e 66 6f 72 |xt := NI|L; c.for|
|00002020| 6d 2e 63 6f 6e 74 65 78 | 74 73 20 3a 3d 20 63 0d |m.contex|ts := c.|
|00002030| 09 09 45 4c 53 45 0d 09 | 09 09 63 2e 6e 65 78 74 |..ELSE..|..c.next|
|00002040| 20 3a 3d 20 70 6f 73 2e | 6e 65 78 74 3b 20 70 6f | := pos.|next; po|
|00002050| 73 2e 6e 65 78 74 20 3a | 3d 20 63 0d 09 09 45 4e |s.next :|= c...EN|
|00002060| 44 0d 09 45 4e 44 20 49 | 6e 73 65 72 74 41 62 6f |D..END I|nsertAbo|
|00002070| 76 65 3b 0d 0d 0d 09 50 | 52 4f 43 45 44 55 52 45 |ve;....P|ROCEDURE|
|00002080| 20 28 66 3a 20 53 74 64 | 4d 6f 64 65 6c 29 20 49 | (f: Std|Model) I|
|00002090| 6e 74 65 72 6e 61 6c 69 | 7a 65 20 28 56 41 52 20 |nternali|ze (VAR |
|000020a0| 72 64 3a 20 53 74 6f 72 | 65 73 2e 52 65 61 64 65 |rd: Stor|es.Reade|
|000020b0| 72 29 3b 0d 09 09 56 41 | 52 20 74 68 69 73 56 65 |r);...VA|R thisVe|
|000020c0| 72 73 69 6f 6e 3a 20 53 | 48 4f 52 54 49 4e 54 3b |rsion: S|HORTINT;|
|000020d0| 20 74 6f 70 2c 20 68 3a | 20 53 74 64 43 6f 6e 74 | top, h:| StdCont|
|000020e0| 65 78 74 3b 20 76 3a 20 | 56 69 65 77 73 2e 56 69 |ext; v: |Views.Vi|
|000020f0| 65 77 3b 20 6c 2c 20 74 | 2c 20 72 2c 20 62 3a 20 |ew; l, t|, r, b: |
|00002100| 4c 4f 4e 47 49 4e 54 3b | 0d 09 42 45 47 49 4e 0d |LONGINT;|..BEGIN.|
|00002110| 09 09 66 2e 49 6e 74 65 | 72 6e 61 6c 69 7a 65 5e |..f.Inte|rnalize^|
|00002120| 28 72 64 29 3b 0d 09 09 | 49 46 20 7e 72 64 2e 63 |(rd);...|IF ~rd.c|
|00002130| 61 6e 63 65 6c 6c 65 64 | 20 54 48 45 4e 0d 09 09 |ancelled| THEN...|
|00002140| 09 72 64 2e 52 65 61 64 | 56 65 72 73 69 6f 6e 28 |.rd.Read|Version(|
|00002150| 6d 69 6e 56 65 72 73 69 | 6f 6e 2c 20 6d 61 78 53 |minVersi|on, maxS|
|00002160| 74 64 56 65 72 73 69 6f | 6e 2c 20 74 68 69 73 56 |tdVersio|n, thisV|
|00002170| 65 72 73 69 6f 6e 29 3b | 0d 09 09 09 49 46 20 7e |ersion);|....IF ~|
|00002180| 72 64 2e 63 61 6e 63 65 | 6c 6c 65 64 20 54 48 45 |rd.cance|lled THE|
|00002190| 4e 0d 09 09 09 09 56 69 | 65 77 73 2e 52 65 61 64 |N.....Vi|ews.Read|
|000021a0| 56 69 65 77 28 72 64 2c | 20 76 29 3b 20 74 6f 70 |View(rd,| v); top|
|000021b0| 20 3a 3d 20 4e 49 4c 3b | 0d 09 09 09 09 57 48 49 | := NIL;|.....WHI|
|000021c0| 4c 45 20 76 20 23 20 4e | 49 4c 20 44 4f 0d 09 09 |LE v # N|IL DO...|
|000021d0| 09 09 09 72 64 2e 52 65 | 61 64 4c 49 6e 74 28 6c |...rd.Re|adLInt(l|
|000021e0| 29 3b 20 72 64 2e 52 65 | 61 64 4c 49 6e 74 28 74 |); rd.Re|adLInt(t|
|000021f0| 29 3b 20 72 64 2e 52 65 | 61 64 4c 49 6e 74 28 72 |); rd.Re|adLInt(r|
|00002200| 29 3b 20 72 64 2e 52 65 | 61 64 4c 49 6e 74 28 62 |); rd.Re|adLInt(b|
|00002210| 29 3b 0d 09 09 09 09 09 | 68 20 3a 3d 20 4e 65 77 |);......|h := New|
|00002220| 43 6f 6e 74 65 78 74 28 | 66 2c 20 76 2c 20 6c 2c |Context(|f, v, l,|
|00002230| 20 74 2c 20 72 2c 20 62 | 29 3b 0d 09 09 09 09 09 | t, r, b|);......|
|00002240| 49 6e 73 65 72 74 41 62 | 6f 76 65 28 68 2c 20 74 |InsertAb|ove(h, t|
|00002250| 6f 70 29 3b 20 74 6f 70 | 20 3a 3d 20 68 3b 0d 09 |op); top| := h;..|
|00002260| 09 09 09 09 56 69 65 77 | 73 2e 52 65 61 64 56 69 |....View|s.ReadVi|
|00002270| 65 77 28 72 64 2c 20 76 | 29 0d 09 09 09 09 45 4e |ew(rd, v|).....EN|
|00002280| 44 0d 09 09 09 45 4e 44 | 0d 09 09 45 4e 44 0d 09 |D....END|...END..|
|00002290| 45 4e 44 20 49 6e 74 65 | 72 6e 61 6c 69 7a 65 3b |END Inte|rnalize;|
|000022a0| 0d 0d 09 50 52 4f 43 45 | 44 55 52 45 20 28 66 3a |...PROCE|DURE (f:|
|000022b0| 20 53 74 64 4d 6f 64 65 | 6c 29 20 45 78 74 65 72 | StdMode|l) Exter|
|000022c0| 6e 61 6c 69 7a 65 20 28 | 56 41 52 20 77 72 3a 20 |nalize (|VAR wr: |
|000022d0| 53 74 6f 72 65 73 2e 57 | 72 69 74 65 72 29 3b 0d |Stores.W|riter);.|
|000022e0| 09 09 56 41 52 20 63 3a | 20 53 74 64 43 6f 6e 74 |..VAR c:| StdCont|
|000022f0| 65 78 74 3b 20 70 3a 20 | 50 72 6f 70 65 72 74 69 |ext; p: |Properti|
|00002300| 65 73 2e 53 74 6f 72 65 | 50 72 65 66 3b 0d 09 42 |es.Store|Pref;..B|
|00002310| 45 47 49 4e 0d 09 09 66 | 2e 45 78 74 65 72 6e 61 |EGIN...f|.Externa|
|00002320| 6c 69 7a 65 5e 28 77 72 | 29 3b 0d 09 09 77 72 2e |lize^(wr|);...wr.|
|00002330| 57 72 69 74 65 56 65 72 | 73 69 6f 6e 28 6d 61 78 |WriteVer|sion(max|
|00002340| 53 74 64 56 65 72 73 69 | 6f 6e 29 3b 0d 09 09 63 |StdVersi|on);...c|
|00002350| 20 3a 3d 20 66 2e 63 6f | 6e 74 65 78 74 73 3b 0d | := f.co|ntexts;.|
|00002360| 09 09 57 48 49 4c 45 20 | 63 20 23 20 4e 49 4c 20 |..WHILE |c # NIL |
|00002370| 44 4f 0d 09 09 09 70 2e | 76 69 65 77 20 3a 3d 20 |DO....p.|view := |
|00002380| 63 2e 76 69 65 77 3b 20 | 56 69 65 77 73 2e 48 61 |c.view; |Views.Ha|
|00002390| 6e 64 6c 65 50 72 6f 70 | 4d 73 67 28 63 2e 76 69 |ndleProp|Msg(c.vi|
|000023a0| 65 77 2c 20 70 29 3b 0d | 09 09 09 49 46 20 70 2e |ew, p);.|...IF p.|
|000023b0| 76 69 65 77 20 23 20 4e | 49 4c 20 54 48 45 4e 09 |view # N|IL THEN.|
|000023c0| 28 2a 20 76 69 65 77 20 | 69 73 20 6e 6f 74 20 74 |(* view |is not t|
|000023d0| 65 6d 70 6f 72 61 72 79 | 20 2a 29 0d 09 09 09 09 |emporary| *).....|
|000023e0| 56 69 65 77 73 2e 57 72 | 69 74 65 56 69 65 77 28 |Views.Wr|iteView(|
|000023f0| 77 72 2c 20 70 2e 76 69 | 65 77 29 3b 0d 09 09 09 |wr, p.vi|ew);....|
|00002400| 09 77 72 2e 57 72 69 74 | 65 4c 49 6e 74 28 63 2e |.wr.Writ|eLInt(c.|
|00002410| 6c 29 3b 20 77 72 2e 57 | 72 69 74 65 4c 49 6e 74 |l); wr.W|riteLInt|
|00002420| 28 63 2e 74 29 3b 20 77 | 72 2e 57 72 69 74 65 4c |(c.t); w|r.WriteL|
|00002430| 49 6e 74 28 63 2e 72 29 | 3b 20 77 72 2e 57 72 69 |Int(c.r)|; wr.Wri|
|00002440| 74 65 4c 49 6e 74 28 63 | 2e 62 29 0d 09 09 09 45 |teLInt(c|.b)....E|
|00002450| 4e 44 3b 0d 09 09 09 63 | 20 3a 3d 20 63 2e 6e 65 |ND;....c| := c.ne|
|00002460| 78 74 0d 09 09 45 4e 44 | 3b 0d 09 09 77 72 2e 57 |xt...END|;...wr.W|
|00002470| 72 69 74 65 53 74 6f 72 | 65 28 4e 49 4c 29 0d 09 |riteStor|e(NIL)..|
|00002480| 45 4e 44 20 45 78 74 65 | 72 6e 61 6c 69 7a 65 3b |END Exte|rnalize;|
|00002490| 0d 0d 09 50 52 4f 43 45 | 44 55 52 45 20 28 66 3a |...PROCE|DURE (f:|
|000024a0| 20 53 74 64 4d 6f 64 65 | 6c 29 20 49 6e 69 74 44 | StdMode|l) InitD|
|000024b0| 6f 6d 61 69 6e 20 28 64 | 3a 20 44 6f 6d 61 69 6e |omain (d|: Domain|
|000024c0| 73 2e 44 6f 6d 61 69 6e | 29 3b 0d 09 09 56 41 52 |s.Domain|);...VAR|
|000024d0| 20 63 3a 20 53 74 64 43 | 6f 6e 74 65 78 74 3b 0d | c: StdC|ontext;.|
|000024e0| 09 42 45 47 49 4e 09 28 | 2a 20 70 72 6f 70 61 67 |.BEGIN.(|* propag|
|000024f0| 61 74 65 20 64 6f 6d 61 | 69 6e 20 74 6f 20 61 6c |ate doma|in to al|
|00002500| 6c 20 65 6d 62 65 64 64 | 65 64 20 76 69 65 77 73 |l embedd|ed views|
|00002510| 20 2a 29 0d 09 09 66 2e | 49 6e 69 74 44 6f 6d 61 | *)...f.|InitDoma|
|00002520| 69 6e 5e 28 64 29 3b 0d | 09 09 63 20 3a 3d 20 66 |in^(d);.|..c := f|
|00002530| 2e 63 6f 6e 74 65 78 74 | 73 3b 20 57 48 49 4c 45 |.context|s; WHILE|
|00002540| 20 63 20 23 20 4e 49 4c | 20 44 4f 20 63 2e 76 69 | c # NIL| DO c.vi|
|00002550| 65 77 2e 49 6e 69 74 44 | 6f 6d 61 69 6e 28 64 29 |ew.InitD|omain(d)|
|00002560| 3b 20 63 20 3a 3d 20 63 | 2e 6e 65 78 74 20 45 4e |; c := c|.next EN|
|00002570| 44 0d 09 45 4e 44 20 49 | 6e 69 74 44 6f 6d 61 69 |D..END I|nitDomai|
|00002580| 6e 3b 0d 0d 09 50 52 4f | 43 45 44 55 52 45 20 28 |n;...PRO|CEDURE (|
|00002590| 66 3a 20 53 74 64 4d 6f | 64 65 6c 29 20 43 6f 70 |f: StdMo|del) Cop|
|000025a0| 79 41 6c 6c 46 72 6f 6d | 20 28 73 6f 75 72 63 65 |yAllFrom| (source|
|000025b0| 3a 20 4d 6f 64 65 6c 73 | 2e 4d 6f 64 65 6c 29 3b |: Models|.Model);|
|000025c0| 0d 09 09 56 41 52 20 63 | 2c 20 74 6f 70 2c 20 68 |...VAR c|, top, h|
|000025d0| 3a 20 53 74 64 43 6f 6e | 74 65 78 74 3b 0d 09 42 |: StdCon|text;..B|
|000025e0| 45 47 49 4e 0d 09 09 57 | 49 54 48 20 73 6f 75 72 |EGIN...W|ITH sour|
|000025f0| 63 65 3a 20 53 74 64 4d | 6f 64 65 6c 20 44 4f 0d |ce: StdM|odel DO.|
|00002600| 09 09 09 63 20 3a 3d 20 | 73 6f 75 72 63 65 2e 63 |...c := |source.c|
|00002610| 6f 6e 74 65 78 74 73 3b | 20 74 6f 70 20 3a 3d 20 |ontexts;| top := |
|00002620| 4e 49 4c 3b 0d 09 09 09 | 57 48 49 4c 45 20 63 20 |NIL;....|WHILE c |
|00002630| 23 20 4e 49 4c 20 44 4f | 0d 09 09 09 09 68 20 3a |# NIL DO|.....h :|
|00002640| 3d 20 4e 65 77 43 6f 6e | 74 65 78 74 28 66 2c 20 |= NewCon|text(f, |
|00002650| 56 69 65 77 73 2e 43 6f | 70 79 4f 66 28 63 2e 76 |Views.Co|pyOf(c.v|
|00002660| 69 65 77 2c 20 56 69 65 | 77 73 2e 64 65 65 70 29 |iew, Vie|ws.deep)|
|00002670| 2c 20 63 2e 6c 2c 20 63 | 2e 74 2c 20 63 2e 72 2c |, c.l, c|.t, c.r,|
|00002680| 20 63 2e 62 29 3b 0d 09 | 09 09 09 49 6e 73 65 72 | c.b);..|...Inser|
|00002690| 74 41 62 6f 76 65 28 68 | 2c 20 74 6f 70 29 3b 20 |tAbove(h|, top); |
|000026a0| 74 6f 70 20 3a 3d 20 68 | 3b 0d 09 09 09 09 63 20 |top := h|;.....c |
|000026b0| 3a 3d 20 63 2e 6e 65 78 | 74 0d 09 09 09 45 4e 44 |:= c.nex|t....END|
|000026c0| 0d 09 09 45 4e 44 0d 09 | 45 4e 44 20 43 6f 70 79 |...END..|END Copy|
|000026d0| 41 6c 6c 46 72 6f 6d 3b | 0d 0d 09 50 52 4f 43 45 |AllFrom;|...PROCE|
|000026e0| 44 55 52 45 20 28 66 3a | 20 53 74 64 4d 6f 64 65 |DURE (f:| StdMode|
|000026f0| 6c 29 20 49 6e 69 74 46 | 72 6f 6d 20 28 73 6f 75 |l) InitF|rom (sou|
|00002700| 72 63 65 3a 20 4d 6f 64 | 65 6c 73 2e 4d 6f 64 65 |rce: Mod|els.Mode|
|00002710| 6c 29 3b 0d 09 42 45 47 | 49 4e 0d 09 09 66 2e 63 |l);..BEG|IN...f.c|
|00002720| 6f 6e 74 65 78 74 73 20 | 3a 3d 20 4e 49 4c 0d 09 |ontexts |:= NIL..|
|00002730| 45 4e 44 20 49 6e 69 74 | 46 72 6f 6d 3b 0d 0d 09 |END Init|From;...|
|00002740| 50 52 4f 43 45 44 55 52 | 45 20 28 66 3a 20 53 74 |PROCEDUR|E (f: St|
|00002750| 64 4d 6f 64 65 6c 29 20 | 52 65 70 6c 61 63 65 56 |dModel) |ReplaceV|
|00002760| 69 65 77 20 28 6f 6c 64 | 2c 20 6e 65 77 3a 20 56 |iew (old|, new: V|
|00002770| 69 65 77 73 2e 56 69 65 | 77 29 3b 0d 09 09 56 41 |iews.Vie|w);...VA|
|00002780| 52 20 6f 70 3a 20 52 65 | 70 6c 61 63 65 56 69 65 |R op: Re|placeVie|
|00002790| 77 4f 70 3b 20 63 3a 20 | 53 74 64 43 6f 6e 74 65 |wOp; c: |StdConte|
|000027a0| 78 74 3b 0d 09 42 45 47 | 49 4e 0d 09 09 63 20 3a |xt;..BEG|IN...c :|
|000027b0| 3d 20 54 68 69 73 43 6f | 6e 74 65 78 74 28 66 2c |= ThisCo|ntext(f,|
|000027c0| 20 6f 6c 64 29 3b 20 41 | 53 53 45 52 54 28 63 20 | old); A|SSERT(c |
|000027d0| 23 20 4e 49 4c 2c 20 32 | 30 29 3b 0d 09 09 41 53 |# NIL, 2|0);...AS|
|000027e0| 53 45 52 54 28 6e 65 77 | 20 23 20 4e 49 4c 2c 20 |SERT(new| # NIL, |
|000027f0| 32 31 29 3b 20 41 53 53 | 45 52 54 28 28 6e 65 77 |21); ASS|ERT((new|
|00002800| 2e 63 6f 6e 74 65 78 74 | 20 3d 20 4e 49 4c 29 20 |.context| = NIL) |
|00002810| 4f 52 20 28 6e 65 77 2e | 63 6f 6e 74 65 78 74 20 |OR (new.|context |
|00002820| 3d 20 63 29 2c 20 32 33 | 29 3b 0d 09 09 49 46 20 |= c), 23|);...IF |
|00002830| 6f 6c 64 20 23 20 6e 65 | 77 20 54 48 45 4e 0d 09 |old # ne|w THEN..|
|00002840| 09 09 4e 45 57 28 6f 70 | 29 3b 20 6f 70 2e 63 6f |..NEW(op|); op.co|
|00002850| 6e 74 65 78 74 20 3a 3d | 20 63 3b 20 6f 70 2e 76 |ntext :=| c; op.v|
|00002860| 69 65 77 20 3a 3d 20 6e | 65 77 3b 0d 09 09 09 4d |iew := n|ew;....M|
|00002870| 6f 64 65 6c 73 2e 44 6f | 28 66 2c 20 22 23 53 79 |odels.Do|(f, "#Sy|
|00002880| 73 74 65 6d 3a 52 65 70 | 6c 61 63 65 56 69 65 77 |stem:Rep|laceView|
|00002890| 22 2c 20 6f 70 29 0d 09 | 09 45 4e 44 0d 09 45 4e |", op)..|.END..EN|
|000028a0| 44 20 52 65 70 6c 61 63 | 65 56 69 65 77 3b 0d 0d |D Replac|eView;..|
|000028b0| 09 50 52 4f 43 45 44 55 | 52 45 20 28 66 3a 20 53 |.PROCEDU|RE (f: S|
|000028c0| 74 64 4d 6f 64 65 6c 29 | 20 49 6e 73 65 72 74 20 |tdModel)| Insert |
|000028d0| 28 76 3a 20 56 69 65 77 | 73 2e 56 69 65 77 3b 20 |(v: View|s.View; |
|000028e0| 6c 2c 20 74 2c 20 72 2c | 20 62 3a 20 4c 4f 4e 47 |l, t, r,| b: LONG|
|000028f0| 49 4e 54 29 3b 0d 09 09 | 56 41 52 20 6f 70 3a 20 |INT);...|VAR op: |
|00002900| 46 6f 72 6d 4f 70 3b 20 | 63 2c 20 68 2c 20 74 6f |FormOp; |c, h, to|
|00002910| 70 3a 20 53 74 64 43 6f | 6e 74 65 78 74 3b 0d 09 |p: StdCo|ntext;..|
|00002920| 42 45 47 49 4e 0d 09 09 | 41 53 53 45 52 54 28 76 |BEGIN...|ASSERT(v|
|00002930| 20 23 20 4e 49 4c 2c 20 | 32 30 29 3b 20 41 53 53 | # NIL, |20); ASS|
|00002940| 45 52 54 28 76 2e 63 6f | 6e 74 65 78 74 20 3d 20 |ERT(v.co|ntext = |
|00002950| 4e 49 4c 2c 20 32 32 29 | 3b 0d 09 09 41 53 53 45 |NIL, 22)|;...ASSE|
|00002960| 52 54 28 6c 20 3c 3d 20 | 72 2c 20 32 33 29 3b 20 |RT(l <= |r, 23); |
|00002970| 41 53 53 45 52 54 28 74 | 20 3c 3d 20 62 2c 20 32 |ASSERT(t| <= b, 2|
|00002980| 34 29 3b 0d 09 09 68 20 | 3a 3d 20 66 2e 63 6f 6e |4);...h |:= f.con|
|00002990| 74 65 78 74 73 3b 20 74 | 6f 70 20 3a 3d 20 4e 49 |texts; t|op := NI|
|000029a0| 4c 3b 20 57 48 49 4c 45 | 20 68 20 23 20 4e 49 4c |L; WHILE| h # NIL|
|000029b0| 20 44 4f 20 74 6f 70 20 | 3a 3d 20 68 3b 20 68 20 | DO top |:= h; h |
|000029c0| 3a 3d 20 68 2e 6e 65 78 | 74 20 45 4e 44 3b 0d 09 |:= h.nex|t END;..|
|000029d0| 09 63 20 3a 3d 20 4e 65 | 77 43 6f 6e 74 65 78 74 |.c := Ne|wContext|
|000029e0| 28 66 2c 20 76 2c 20 6c | 2c 20 74 2c 20 72 2c 20 |(f, v, l|, t, r, |
|000029f0| 62 29 3b 0d 09 09 4e 45 | 57 28 6f 70 29 3b 20 6f |b);...NE|W(op); o|
|00002a00| 70 2e 64 65 6c 20 3a 3d | 20 4e 49 4c 3b 20 6f 70 |p.del :=| NIL; op|
|00002a10| 2e 69 6e 73 20 3a 3d 20 | 63 3b 20 6f 70 2e 70 6f |.ins := |c; op.po|
|00002a20| 73 20 3a 3d 20 74 6f 70 | 3b 0d 09 09 4d 6f 64 65 |s := top|;...Mode|
|00002a30| 6c 73 2e 44 6f 28 66 2c | 20 22 23 53 79 73 74 65 |ls.Do(f,| "#Syste|
|00002a40| 6d 3a 49 6e 73 65 72 74 | 69 6f 6e 22 2c 20 6f 70 |m:Insert|ion", op|
|00002a50| 29 0d 09 45 4e 44 20 49 | 6e 73 65 72 74 3b 0d 0d |)..END I|nsert;..|
|00002a60| 09 50 52 4f 43 45 44 55 | 52 45 20 28 66 3a 20 53 |.PROCEDU|RE (f: S|
|00002a70| 74 64 4d 6f 64 65 6c 29 | 20 44 65 6c 65 74 65 20 |tdModel)| Delete |
|00002a80| 28 76 3a 20 56 69 65 77 | 73 2e 56 69 65 77 29 3b |(v: View|s.View);|
|00002a90| 0d 09 09 56 41 52 20 6f | 70 3a 20 46 6f 72 6d 4f |...VAR o|p: FormO|
|00002aa0| 70 3b 20 63 3a 20 53 74 | 64 43 6f 6e 74 65 78 74 |p; c: St|dContext|
|00002ab0| 3b 0d 09 42 45 47 49 4e | 0d 09 09 63 20 3a 3d 20 |;..BEGIN|...c := |
|00002ac0| 54 68 69 73 43 6f 6e 74 | 65 78 74 28 66 2c 20 76 |ThisCont|ext(f, v|
|00002ad0| 29 3b 20 41 53 53 45 52 | 54 28 63 20 23 20 4e 49 |); ASSER|T(c # NI|
|00002ae0| 4c 2c 20 32 30 29 3b 0d | 09 09 4e 45 57 28 6f 70 |L, 20);.|..NEW(op|
|00002af0| 29 3b 20 6f 70 2e 64 65 | 6c 20 3a 3d 20 63 3b 20 |); op.de|l := c; |
|00002b00| 6f 70 2e 69 6e 73 20 3a | 3d 20 4e 49 4c 3b 20 6f |op.ins :|= NIL; o|
|00002b10| 70 2e 70 6f 73 20 3a 3d | 20 4e 49 4c 3b 0d 09 09 |p.pos :=| NIL;...|
|00002b20| 4d 6f 64 65 6c 73 2e 44 | 6f 28 66 2c 20 22 23 53 |Models.D|o(f, "#S|
|00002b30| 79 73 74 65 6d 3a 44 65 | 6c 65 74 69 6f 6e 22 2c |ystem:De|letion",|
|00002b40| 20 6f 70 29 0d 09 45 4e | 44 20 44 65 6c 65 74 65 | op)..EN|D Delete|
|00002b50| 3b 0d 0d 09 50 52 4f 43 | 45 44 55 52 45 20 28 66 |;...PROC|EDURE (f|
|00002b60| 3a 20 53 74 64 4d 6f 64 | 65 6c 29 20 52 65 73 69 |: StdMod|el) Resi|
|00002b70| 7a 65 20 28 76 3a 20 56 | 69 65 77 73 2e 56 69 65 |ze (v: V|iews.Vie|
|00002b80| 77 3b 20 6c 2c 20 74 2c | 20 72 2c 20 62 3a 20 4c |w; l, t,| r, b: L|
|00002b90| 4f 4e 47 49 4e 54 29 3b | 0d 09 09 56 41 52 20 6f |ONGINT);|...VAR o|
|00002ba0| 70 3a 20 52 65 73 69 7a | 65 4f 70 3b 20 63 3a 20 |p: Resiz|eOp; c: |
|00002bb0| 53 74 64 43 6f 6e 74 65 | 78 74 3b 0d 09 42 45 47 |StdConte|xt;..BEG|
|00002bc0| 49 4e 0d 09 09 63 20 3a | 3d 20 54 68 69 73 43 6f |IN...c :|= ThisCo|
|00002bd0| 6e 74 65 78 74 28 66 2c | 20 76 29 3b 20 41 53 53 |ntext(f,| v); ASS|
|00002be0| 45 52 54 28 63 20 23 20 | 4e 49 4c 2c 20 32 30 29 |ERT(c # |NIL, 20)|
|00002bf0| 3b 0d 09 09 41 53 53 45 | 52 54 28 72 20 3e 3d 20 |;...ASSE|RT(r >= |
|00002c00| 6c 2c 20 32 31 29 3b 20 | 41 53 53 45 52 54 28 62 |l, 21); |ASSERT(b|
|00002c10| 20 3e 3d 20 74 2c 20 32 | 32 29 3b 0d 09 09 49 46 | >= t, 2|2);...IF|
|00002c20| 20 72 20 2d 20 6c 20 3c | 20 6d 69 6e 56 69 65 77 | r - l <| minView|
|00002c30| 53 69 7a 65 20 54 48 45 | 4e 20 72 20 3a 3d 20 6c |Size THE|N r := l|
|00002c40| 20 2b 20 6d 69 6e 56 69 | 65 77 53 69 7a 65 20 45 | + minVi|ewSize E|
|00002c50| 4e 44 3b 0d 09 09 49 46 | 20 62 20 2d 20 74 20 3c |ND;...IF| b - t <|
|00002c60| 20 6d 69 6e 56 69 65 77 | 53 69 7a 65 20 54 48 45 | minView|Size THE|
|00002c70| 4e 20 62 20 3a 3d 20 74 | 20 2b 20 6d 69 6e 56 69 |N b := t| + minVi|
|00002c80| 65 77 53 69 7a 65 20 45 | 4e 44 3b 0d 09 09 4e 45 |ewSize E|ND;...NE|
|00002c90| 57 28 6f 70 29 3b 20 6f | 70 2e 63 6f 6e 74 65 78 |W(op); o|p.contex|
|00002ca0| 74 20 3a 3d 20 63 3b 20 | 6f 70 2e 6c 20 3a 3d 20 |t := c; |op.l := |
|00002cb0| 6c 3b 20 6f 70 2e 74 20 | 3a 3d 20 74 3b 20 6f 70 |l; op.t |:= t; op|
|00002cc0| 2e 72 20 3a 3d 20 72 3b | 20 6f 70 2e 62 20 3a 3d |.r := r;| op.b :=|
|00002cd0| 20 62 3b 0d 09 09 4d 6f | 64 65 6c 73 2e 44 6f 28 | b;...Mo|dels.Do(|
|00002ce0| 66 2c 20 22 23 53 79 73 | 74 65 6d 3a 52 65 73 69 |f, "#Sys|tem:Resi|
|00002cf0| 7a 69 6e 67 22 2c 20 6f | 70 29 0d 09 45 4e 44 20 |zing", o|p)..END |
|00002d00| 52 65 73 69 7a 65 3b 0d | 0d 09 50 52 4f 43 45 44 |Resize;.|..PROCED|
|00002d10| 55 52 45 20 28 66 3a 20 | 53 74 64 4d 6f 64 65 6c |URE (f: |StdModel|
|00002d20| 29 20 50 75 74 41 62 6f | 76 65 20 28 76 2c 20 70 |) PutAbo|ve (v, p|
|00002d30| 6f 73 3a 20 56 69 65 77 | 73 2e 56 69 65 77 29 3b |os: View|s.View);|
|00002d40| 0d 09 09 56 41 52 20 6f | 70 3a 20 46 6f 72 6d 4f |...VAR o|p: FormO|
|00002d50| 70 3b 20 63 2c 20 64 3a | 20 53 74 64 43 6f 6e 74 |p; c, d:| StdCont|
|00002d60| 65 78 74 3b 0d 09 42 45 | 47 49 4e 0d 09 09 63 20 |ext;..BE|GIN...c |
|00002d70| 3a 3d 20 54 68 69 73 43 | 6f 6e 74 65 78 74 28 66 |:= ThisC|ontext(f|
|00002d80| 2c 20 76 29 3b 20 41 53 | 53 45 52 54 28 63 20 23 |, v); AS|SERT(c #|
|00002d90| 20 4e 49 4c 2c 20 32 30 | 29 3b 0d 09 09 64 20 3a | NIL, 20|);...d :|
|00002da0| 3d 20 54 68 69 73 43 6f | 6e 74 65 78 74 28 66 2c |= ThisCo|ntext(f,|
|00002db0| 20 70 6f 73 29 3b 20 41 | 53 53 45 52 54 28 28 70 | pos); A|SSERT((p|
|00002dc0| 6f 73 20 3d 20 4e 49 4c | 29 20 4f 52 20 28 64 20 |os = NIL|) OR (d |
|00002dd0| 23 20 4e 49 4c 29 2c 20 | 32 31 29 3b 0d 09 09 49 |# NIL), |21);...I|
|00002de0| 46 20 76 20 23 20 70 6f | 73 20 54 48 45 4e 0d 09 |F v # po|s THEN..|
|00002df0| 09 09 4e 45 57 28 6f 70 | 29 3b 20 6f 70 2e 64 65 |..NEW(op|); op.de|
|00002e00| 6c 20 3a 3d 20 63 3b 20 | 6f 70 2e 69 6e 73 20 3a |l := c; |op.ins :|
|00002e10| 3d 20 63 3b 20 6f 70 2e | 70 6f 73 20 3a 3d 20 64 |= c; op.|pos := d|
|00002e20| 3b 0d 09 09 09 4d 6f 64 | 65 6c 73 2e 44 6f 28 66 |;....Mod|els.Do(f|
|00002e30| 2c 20 22 23 46 6f 72 6d | 3a 43 68 61 6e 67 65 5a |, "#Form|:ChangeZ|
|00002e40| 4f 72 64 65 72 22 2c 20 | 6f 70 29 0d 09 09 45 4e |Order", |op)...EN|
|00002e50| 44 0d 09 45 4e 44 20 50 | 75 74 41 62 6f 76 65 3b |D..END P|utAbove;|
|00002e60| 0d 0d 09 50 52 4f 43 45 | 44 55 52 45 20 28 66 3a |...PROCE|DURE (f:|
|00002e70| 20 53 74 64 4d 6f 64 65 | 6c 29 20 4d 6f 76 65 20 | StdMode|l) Move |
|00002e80| 28 76 3a 20 56 69 65 77 | 73 2e 56 69 65 77 3b 20 |(v: View|s.View; |
|00002e90| 64 78 2c 20 64 79 3a 20 | 4c 4f 4e 47 49 4e 54 29 |dx, dy: |LONGINT)|
|00002ea0| 3b 0d 09 09 56 41 52 20 | 6f 70 3a 20 52 65 73 69 |;...VAR |op: Resi|
|00002eb0| 7a 65 4f 70 3b 20 63 3a | 20 53 74 64 43 6f 6e 74 |zeOp; c:| StdCont|
|00002ec0| 65 78 74 3b 0d 09 42 45 | 47 49 4e 0d 09 09 63 20 |ext;..BE|GIN...c |
|00002ed0| 3a 3d 20 54 68 69 73 43 | 6f 6e 74 65 78 74 28 66 |:= ThisC|ontext(f|
|00002ee0| 2c 20 76 29 3b 20 41 53 | 53 45 52 54 28 63 20 23 |, v); AS|SERT(c #|
|00002ef0| 20 4e 49 4c 2c 20 32 30 | 29 3b 0d 09 09 49 46 20 | NIL, 20|);...IF |
|00002f00| 28 64 78 20 23 20 30 29 | 20 4f 52 20 28 64 79 20 |(dx # 0)| OR (dy |
|00002f10| 23 20 30 29 20 54 48 45 | 4e 0d 09 09 09 4e 45 57 |# 0) THE|N....NEW|
|00002f20| 28 6f 70 29 3b 20 6f 70 | 2e 63 6f 6e 74 65 78 74 |(op); op|.context|
|00002f30| 20 3a 3d 20 63 3b 0d 09 | 09 09 6f 70 2e 6c 20 3a | := c;..|..op.l :|
|00002f40| 3d 20 63 2e 6c 20 2b 20 | 64 78 3b 20 6f 70 2e 74 |= c.l + |dx; op.t|
|00002f50| 20 3a 3d 20 63 2e 74 20 | 2b 20 64 79 3b 20 6f 70 | := c.t |+ dy; op|
|00002f60| 2e 72 20 3a 3d 20 63 2e | 72 20 2b 20 64 78 3b 20 |.r := c.|r + dx; |
|00002f70| 6f 70 2e 62 20 3a 3d 20 | 63 2e 62 20 2b 20 64 79 |op.b := |c.b + dy|
|00002f80| 3b 0d 09 09 09 4d 6f 64 | 65 6c 73 2e 44 6f 28 66 |;....Mod|els.Do(f|
|00002f90| 2c 20 22 23 53 79 73 74 | 65 6d 3a 4d 6f 76 69 6e |, "#Syst|em:Movin|
|00002fa0| 67 22 2c 20 6f 70 29 0d | 09 09 45 4e 44 0d 09 45 |g", op).|..END..E|
|00002fb0| 4e 44 20 4d 6f 76 65 3b | 0d 0d 09 50 52 4f 43 45 |ND Move;|...PROCE|
|00002fc0| 44 55 52 45 20 28 66 3a | 20 53 74 64 4d 6f 64 65 |DURE (f:| StdMode|
|00002fd0| 6c 29 20 43 6f 70 79 20 | 28 56 41 52 20 76 3a 20 |l) Copy |(VAR v: |
|00002fe0| 56 69 65 77 73 2e 56 69 | 65 77 3b 20 64 78 2c 20 |Views.Vi|ew; dx, |
|00002ff0| 64 79 3a 20 4c 4f 4e 47 | 49 4e 54 29 3b 0d 09 09 |dy: LONG|INT);...|
|00003000| 56 41 52 20 6f 70 3a 20 | 46 6f 72 6d 4f 70 3b 20 |VAR op: |FormOp; |
|00003010| 63 2c 20 68 2c 20 74 6f | 70 3a 20 53 74 64 43 6f |c, h, to|p: StdCo|
|00003020| 6e 74 65 78 74 3b 0d 09 | 42 45 47 49 4e 0d 09 09 |ntext;..|BEGIN...|
|00003030| 63 20 3a 3d 20 54 68 69 | 73 43 6f 6e 74 65 78 74 |c := Thi|sContext|
|00003040| 28 66 2c 20 76 29 3b 20 | 41 53 53 45 52 54 28 63 |(f, v); |ASSERT(c|
|00003050| 20 23 20 4e 49 4c 2c 20 | 32 30 29 3b 0d 09 09 68 | # NIL, |20);...h|
|00003060| 20 3a 3d 20 66 2e 63 6f | 6e 74 65 78 74 73 3b 20 | := f.co|ntexts; |
|00003070| 74 6f 70 20 3a 3d 20 4e | 49 4c 3b 20 57 48 49 4c |top := N|IL; WHIL|
|00003080| 45 20 68 20 23 20 4e 49 | 4c 20 44 4f 20 74 6f 70 |E h # NI|L DO top|
|00003090| 20 3a 3d 20 68 3b 20 68 | 20 3a 3d 20 68 2e 6e 65 | := h; h| := h.ne|
|000030a0| 78 74 20 45 4e 44 3b 0d | 09 09 68 20 3a 3d 20 4e |xt END;.|..h := N|
|000030b0| 65 77 43 6f 6e 74 65 78 | 74 28 66 2c 20 56 69 65 |ewContex|t(f, Vie|
|000030c0| 77 73 2e 43 6f 70 79 4f | 66 28 76 2c 20 56 69 65 |ws.CopyO|f(v, Vie|
|000030d0| 77 73 2e 64 65 65 70 29 | 2c 20 63 2e 6c 20 2b 20 |ws.deep)|, c.l + |
|000030e0| 64 78 2c 20 63 2e 74 20 | 2b 20 64 79 2c 20 63 2e |dx, c.t |+ dy, c.|
|000030f0| 72 20 2b 20 64 78 2c 20 | 63 2e 62 20 2b 20 64 79 |r + dx, |c.b + dy|
|00003100| 29 3b 0d 09 09 4e 45 57 | 28 6f 70 29 3b 20 6f 70 |);...NEW|(op); op|
|00003110| 2e 64 65 6c 20 3a 3d 20 | 4e 49 4c 3b 20 6f 70 2e |.del := |NIL; op.|
|00003120| 69 6e 73 20 3a 3d 20 68 | 3b 20 6f 70 2e 70 6f 73 |ins := h|; op.pos|
|00003130| 20 3a 3d 20 74 6f 70 3b | 0d 09 09 4d 6f 64 65 6c | := top;|...Model|
|00003140| 73 2e 44 6f 28 66 2c 20 | 22 23 53 79 73 74 65 6d |s.Do(f, |"#System|
|00003150| 3a 43 6f 70 79 69 6e 67 | 22 2c 20 6f 70 29 3b 0d |:Copying|", op);.|
|00003160| 09 09 76 20 3a 3d 20 68 | 2e 76 69 65 77 0d 09 45 |..v := h|.view..E|
|00003170| 4e 44 20 43 6f 70 79 3b | 0d 0d 09 50 52 4f 43 45 |ND Copy;|...PROCE|
|00003180| 44 55 52 45 20 28 66 3a | 20 53 74 64 4d 6f 64 65 |DURE (f:| StdMode|
|00003190| 6c 29 20 4e 65 77 52 65 | 61 64 65 72 20 28 6f 6c |l) NewRe|ader (ol|
|000031a0| 64 3a 20 52 65 61 64 65 | 72 29 3a 20 52 65 61 64 |d: Reade|r): Read|
|000031b0| 65 72 3b 0d 09 09 56 41 | 52 20 72 3a 20 53 74 64 |er;...VA|R r: Std|
|000031c0| 52 65 61 64 65 72 3b 0d | 09 42 45 47 49 4e 0d 09 |Reader;.|.BEGIN..|
|000031d0| 09 49 46 20 28 6f 6c 64 | 20 3d 20 4e 49 4c 29 20 |.IF (old| = NIL) |
|000031e0| 4f 52 20 7e 28 6f 6c 64 | 20 49 53 20 53 74 64 52 |OR ~(old| IS StdR|
|000031f0| 65 61 64 65 72 29 20 54 | 48 45 4e 20 4e 45 57 28 |eader) T|HEN NEW(|
|00003200| 72 29 20 45 4c 53 45 20 | 72 20 3a 3d 20 6f 6c 64 |r) ELSE |r := old|
|00003210| 28 53 74 64 52 65 61 64 | 65 72 29 20 45 4e 44 3b |(StdRead|er) END;|
|00003220| 0d 09 09 72 2e 76 69 65 | 77 20 3a 3d 20 4e 49 4c |...r.vie|w := NIL|
|00003230| 3b 20 72 2e 66 6f 72 6d | 20 3a 3d 20 66 3b 20 72 |; r.form| := f; r|
|00003240| 2e 70 6f 73 20 3a 3d 20 | 4e 49 4c 3b 20 52 45 54 |.pos := |NIL; RET|
|00003250| 55 52 4e 20 72 0d 09 45 | 4e 44 20 4e 65 77 52 65 |URN r..E|ND NewRe|
|00003260| 61 64 65 72 3b 0d 0d 09 | 50 52 4f 43 45 44 55 52 |ader;...|PROCEDUR|
|00003270| 45 20 28 66 3a 20 53 74 | 64 4d 6f 64 65 6c 29 20 |E (f: St|dModel) |
|00003280| 4e 65 77 57 72 69 74 65 | 72 20 28 6f 6c 64 3a 20 |NewWrite|r (old: |
|00003290| 57 72 69 74 65 72 29 3a | 20 57 72 69 74 65 72 3b |Writer):| Writer;|
|000032a0| 0d 09 09 56 41 52 20 77 | 3a 20 53 74 64 57 72 69 |...VAR w|: StdWri|
|000032b0| 74 65 72 3b 0d 09 42 45 | 47 49 4e 0d 09 09 49 46 |ter;..BE|GIN...IF|
|000032c0| 20 28 6f 6c 64 20 3d 20 | 4e 49 4c 29 20 4f 52 20 | (old = |NIL) OR |
|000032d0| 7e 28 6f 6c 64 20 49 53 | 20 53 74 64 57 72 69 74 |~(old IS| StdWrit|
|000032e0| 65 72 29 20 54 48 45 4e | 20 4e 45 57 28 77 29 20 |er) THEN| NEW(w) |
|000032f0| 45 4c 53 45 20 77 20 3a | 3d 20 6f 6c 64 28 53 74 |ELSE w :|= old(St|
|00003300| 64 57 72 69 74 65 72 29 | 20 45 4e 44 3b 0d 09 09 |dWriter)| END;...|
|00003310| 77 2e 66 6f 72 6d 20 3a | 3d 20 66 3b 20 77 2e 70 |w.form :|= f; w.p|
|00003320| 6f 73 20 3a 3d 20 4e 49 | 4c 3b 20 52 45 54 55 52 |os := NI|L; RETUR|
|00003330| 4e 20 77 0d 09 45 4e 44 | 20 4e 65 77 57 72 69 74 |N w..END| NewWrit|
|00003340| 65 72 3b 0d 0d 09 50 52 | 4f 43 45 44 55 52 45 20 |er;...PR|OCEDURE |
|00003350| 28 66 3a 20 53 74 64 4d | 6f 64 65 6c 29 20 56 69 |(f: StdM|odel) Vi|
|00003360| 65 77 41 74 20 28 78 2c | 20 79 3a 20 4c 4f 4e 47 |ewAt (x,| y: LONG|
|00003370| 49 4e 54 29 3a 20 56 69 | 65 77 73 2e 56 69 65 77 |INT): Vi|ews.View|
|00003380| 3b 0d 09 09 56 41 52 20 | 63 2c 20 74 6f 70 3a 20 |;...VAR |c, top: |
|00003390| 53 74 64 43 6f 6e 74 65 | 78 74 3b 0d 09 42 45 47 |StdConte|xt;..BEG|
|000033a0| 49 4e 0d 09 09 63 20 3a | 3d 20 66 2e 63 6f 6e 74 |IN...c :|= f.cont|
|000033b0| 65 78 74 73 3b 20 74 6f | 70 20 3a 3d 20 4e 49 4c |exts; to|p := NIL|
|000033c0| 3b 0d 09 09 57 48 49 4c | 45 20 63 20 23 20 4e 49 |;...WHIL|E c # NI|
|000033d0| 4c 20 44 4f 0d 09 09 09 | 49 46 20 28 78 20 3e 3d |L DO....|IF (x >=|
|000033e0| 20 63 2e 6c 29 20 26 20 | 28 79 20 3e 3d 20 63 2e | c.l) & |(y >= c.|
|000033f0| 74 29 20 26 20 28 78 20 | 3c 20 63 2e 72 29 20 26 |t) & (x |< c.r) &|
|00003400| 20 28 79 20 3c 20 63 2e | 62 29 20 54 48 45 4e 20 | (y < c.|b) THEN |
|00003410| 74 6f 70 20 3a 3d 20 63 | 20 45 4e 44 3b 0d 09 09 |top := c| END;...|
|00003420| 09 63 20 3a 3d 20 63 2e | 6e 65 78 74 0d 09 09 45 |.c := c.|next...E|
|00003430| 4e 44 3b 0d 09 09 49 46 | 20 74 6f 70 20 3d 20 4e |ND;...IF| top = N|
|00003440| 49 4c 20 54 48 45 4e 20 | 52 45 54 55 52 4e 20 4e |IL THEN |RETURN N|
|00003450| 49 4c 20 45 4c 53 45 20 | 52 45 54 55 52 4e 20 74 |IL ELSE |RETURN t|
|00003460| 6f 70 2e 76 69 65 77 20 | 45 4e 44 0d 09 45 4e 44 |op.view |END..END|
|00003470| 20 56 69 65 77 41 74 3b | 0d 0d 09 50 52 4f 43 45 | ViewAt;|...PROCE|
|00003480| 44 55 52 45 20 28 66 3a | 20 53 74 64 4d 6f 64 65 |DURE (f:| StdMode|
|00003490| 6c 29 20 4e 6f 66 56 69 | 65 77 73 20 28 29 3a 20 |l) NofVi|ews (): |
|000034a0| 49 4e 54 45 47 45 52 3b | 0d 09 09 56 41 52 20 63 |INTEGER;|...VAR c|
|000034b0| 3a 20 53 74 64 43 6f 6e | 74 65 78 74 3b 20 6e 3a |: StdCon|text; n:|
|000034c0| 20 49 4e 54 45 47 45 52 | 3b 0d 09 42 45 47 49 4e | INTEGER|;..BEGIN|
|000034d0| 0d 09 09 6e 20 3a 3d 20 | 30 3b 20 63 20 3a 3d 20 |...n := |0; c := |
|000034e0| 66 2e 63 6f 6e 74 65 78 | 74 73 3b 20 57 48 49 4c |f.contex|ts; WHIL|
|000034f0| 45 20 63 20 23 20 4e 49 | 4c 20 44 4f 20 49 4e 43 |E c # NI|L DO INC|
|00003500| 28 6e 29 3b 20 63 20 3a | 3d 20 63 2e 6e 65 78 74 |(n); c :|= c.next|
|00003510| 20 45 4e 44 3b 0d 09 09 | 52 45 54 55 52 4e 20 6e | END;...|RETURN n|
|00003520| 0d 09 45 4e 44 20 4e 6f | 66 56 69 65 77 73 3b 0d |..END No|fViews;.|
|00003530| 0d 0d 09 28 2a 20 53 74 | 64 43 6f 6e 74 65 78 74 |...(* St|dContext|
|00003540| 20 2a 29 0d 0d 09 50 52 | 4f 43 45 44 55 52 45 20 | *)...PR|OCEDURE |
|00003550| 28 63 3a 20 53 74 64 43 | 6f 6e 74 65 78 74 29 20 |(c: StdC|ontext) |
|00003560| 54 68 69 73 4d 6f 64 65 | 6c 20 28 29 3a 20 4d 6f |ThisMode|l (): Mo|
|00003570| 64 65 6c 3b 0d 09 42 45 | 47 49 4e 0d 09 09 52 45 |del;..BE|GIN...RE|
|00003580| 54 55 52 4e 20 63 2e 66 | 6f 72 6d 0d 09 45 4e 44 |TURN c.f|orm..END|
|00003590| 20 54 68 69 73 4d 6f 64 | 65 6c 3b 0d 0d 09 50 52 | ThisMod|el;...PR|
|000035a0| 4f 43 45 44 55 52 45 20 | 28 63 3a 20 53 74 64 43 |OCEDURE |(c: StdC|
|000035b0| 6f 6e 74 65 78 74 29 20 | 47 65 74 53 69 7a 65 20 |ontext) |GetSize |
|000035c0| 28 56 41 52 20 77 2c 20 | 68 3a 20 4c 4f 4e 47 49 |(VAR w, |h: LONGI|
|000035d0| 4e 54 29 3b 0d 09 42 45 | 47 49 4e 0d 09 09 77 20 |NT);..BE|GIN...w |
|000035e0| 3a 3d 20 63 2e 72 20 2d | 20 63 2e 6c 3b 20 68 20 |:= c.r -| c.l; h |
|000035f0| 3a 3d 20 63 2e 62 20 2d | 20 63 2e 74 0d 09 45 4e |:= c.b -| c.t..EN|
|00003600| 44 20 47 65 74 53 69 7a | 65 3b 0d 0d 09 50 52 4f |D GetSiz|e;...PRO|
|00003610| 43 45 44 55 52 45 20 28 | 63 3a 20 53 74 64 43 6f |CEDURE (|c: StdCo|
|00003620| 6e 74 65 78 74 29 20 53 | 65 74 53 69 7a 65 20 28 |ntext) S|etSize (|
|00003630| 77 2c 20 68 3a 20 4c 4f | 4e 47 49 4e 54 29 3b 0d |w, h: LO|NGINT);.|
|00003640| 09 09 56 41 52 20 77 30 | 2c 20 68 30 3a 20 4c 4f |..VAR w0|, h0: LO|
|00003650| 4e 47 49 4e 54 3b 0d 09 | 42 45 47 49 4e 0d 09 09 |NGINT;..|BEGIN...|
|00003660| 77 30 20 3a 3d 20 63 2e | 72 20 2d 20 63 2e 6c 3b |w0 := c.|r - c.l;|
|00003670| 20 68 30 20 3a 3d 20 63 | 2e 62 20 2d 20 63 2e 74 | h0 := c|.b - c.t|
|00003680| 3b 20 41 53 53 45 52 54 | 28 77 30 20 3e 20 30 2c |; ASSERT|(w0 > 0,|
|00003690| 20 31 30 30 29 3b 20 41 | 53 53 45 52 54 28 68 30 | 100); A|SSERT(h0|
|000036a0| 20 3e 20 30 2c 20 31 30 | 31 29 3b 0d 09 09 50 72 | > 0, 10|1);...Pr|
|000036b0| 6f 70 65 72 74 69 65 73 | 2e 50 72 65 66 65 72 72 |operties|.Preferr|
|000036c0| 65 64 53 69 7a 65 28 0d | 09 09 09 09 63 2e 76 69 |edSize(.|....c.vi|
|000036d0| 65 77 2c 20 6d 69 6e 56 | 69 65 77 53 69 7a 65 2c |ew, minV|iewSize,|
|000036e0| 20 6d 61 78 56 69 65 77 | 53 69 7a 65 2c 20 6d 69 | maxView|Size, mi|
|000036f0| 6e 56 69 65 77 53 69 7a | 65 2c 20 6d 61 78 56 69 |nViewSiz|e, maxVi|
|00003700| 65 77 53 69 7a 65 2c 20 | 77 30 2c 20 68 30 2c 20 |ewSize, |w0, h0, |
|00003710| 77 2c 20 68 29 3b 0d 09 | 09 49 46 20 28 77 20 23 |w, h);..|.IF (w #|
|00003720| 20 77 30 29 20 4f 52 20 | 28 68 20 23 20 68 30 29 | w0) OR |(h # h0)|
|00003730| 20 54 48 45 4e 0d 09 09 | 09 63 2e 66 6f 72 6d 2e | THEN...|.c.form.|
|00003740| 52 65 73 69 7a 65 28 63 | 2e 76 69 65 77 2c 20 63 |Resize(c|.view, c|
|00003750| 2e 6c 2c 20 63 2e 74 2c | 20 63 2e 6c 20 2b 20 77 |.l, c.t,| c.l + w|
|00003760| 2c 20 63 2e 74 20 2b 20 | 68 29 0d 09 09 45 4e 44 |, c.t + |h)...END|
|00003770| 0d 09 45 4e 44 20 53 65 | 74 53 69 7a 65 3b 0d 0d |..END Se|tSize;..|
|00003780| 09 50 52 4f 43 45 44 55 | 52 45 20 28 63 3a 20 53 |.PROCEDU|RE (c: S|
|00003790| 74 64 43 6f 6e 74 65 78 | 74 29 20 4e 6f 72 6d 61 |tdContex|t) Norma|
|000037a0| 6c 69 7a 65 20 28 29 3a | 20 42 4f 4f 4c 45 41 4e |lize ():| BOOLEAN|
|000037b0| 3b 0d 09 42 45 47 49 4e | 0d 09 09 52 45 54 55 52 |;..BEGIN|...RETUR|
|000037c0| 4e 20 46 41 4c 53 45 0d | 09 45 4e 44 20 4e 6f 72 |N FALSE.|.END Nor|
|000037d0| 6d 61 6c 69 7a 65 3b 0d | 0d 09 50 52 4f 43 45 44 |malize;.|..PROCED|
|000037e0| 55 52 45 20 28 63 3a 20 | 53 74 64 43 6f 6e 74 65 |URE (c: |StdConte|
|000037f0| 78 74 29 20 47 65 74 52 | 65 63 74 20 28 56 41 52 |xt) GetR|ect (VAR|
|00003800| 20 6c 2c 20 74 2c 20 72 | 2c 20 62 3a 20 4c 4f 4e | l, t, r|, b: LON|
|00003810| 47 49 4e 54 29 3b 0d 09 | 42 45 47 49 4e 0d 09 09 |GINT);..|BEGIN...|
|00003820| 6c 20 3a 3d 20 63 2e 6c | 3b 20 74 20 3a 3d 20 63 |l := c.l|; t := c|
|00003830| 2e 74 3b 20 72 20 3a 3d | 20 63 2e 72 3b 20 62 20 |.t; r :=| c.r; b |
|00003840| 3a 3d 20 63 2e 62 0d 09 | 45 4e 44 20 47 65 74 52 |:= c.b..|END GetR|
|00003850| 65 63 74 3b 0d 0d 0d 09 | 28 2a 20 53 74 64 44 69 |ect;....|(* StdDi|
|00003860| 72 65 63 74 6f 72 79 20 | 2a 29 0d 0d 09 50 52 4f |rectory |*)...PRO|
|00003870| 43 45 44 55 52 45 20 28 | 64 3a 20 53 74 64 44 69 |CEDURE (|d: StdDi|
|00003880| 72 65 63 74 6f 72 79 29 | 20 4e 65 77 20 28 29 3a |rectory)| New ():|
|00003890| 20 4d 6f 64 65 6c 3b 0d | 09 09 56 41 52 20 66 3a | Model;.|..VAR f:|
|000038a0| 20 53 74 64 4d 6f 64 65 | 6c 3b 0d 09 42 45 47 49 | StdMode|l;..BEGI|
|000038b0| 4e 0d 09 09 4e 45 57 28 | 66 29 3b 20 52 45 54 55 |N...NEW(|f); RETU|
|000038c0| 52 4e 20 66 0d 09 45 4e | 44 20 4e 65 77 3b 0d 0d |RN f..EN|D New;..|
|000038d0| 0d 09 28 2a 20 53 74 64 | 52 65 61 64 65 72 20 2a |..(* Std|Reader *|
|000038e0| 29 0d 0d 09 50 52 4f 43 | 45 44 55 52 45 20 28 72 |)...PROC|EDURE (r|
|000038f0| 3a 20 53 74 64 52 65 61 | 64 65 72 29 20 53 65 74 |: StdRea|der) Set|
|00003900| 20 28 70 6f 73 3a 20 56 | 69 65 77 73 2e 56 69 65 | (pos: V|iews.Vie|
|00003910| 77 29 3b 0d 09 09 56 41 | 52 20 63 3a 20 53 74 64 |w);...VA|R c: Std|
|00003920| 43 6f 6e 74 65 78 74 3b | 0d 09 42 45 47 49 4e 0d |Context;|..BEGIN.|
|00003930| 09 09 49 46 20 70 6f 73 | 20 3d 20 4e 49 4c 20 54 |..IF pos| = NIL T|
|00003940| 48 45 4e 20 63 20 3a 3d | 20 4e 49 4c 20 45 4c 53 |HEN c :=| NIL ELS|
|00003950| 45 20 63 20 3a 3d 20 54 | 68 69 73 43 6f 6e 74 65 |E c := T|hisConte|
|00003960| 78 74 28 72 2e 66 6f 72 | 6d 2c 20 70 6f 73 29 3b |xt(r.for|m, pos);|
|00003970| 20 41 53 53 45 52 54 28 | 63 20 23 20 4e 49 4c 2c | ASSERT(|c # NIL,|
|00003980| 20 32 30 29 20 45 4e 44 | 3b 0d 09 09 72 2e 76 69 | 20) END|;...r.vi|
|00003990| 65 77 20 3a 3d 20 4e 49 | 4c 3b 20 72 2e 6c 20 3a |ew := NI|L; r.l :|
|000039a0| 3d 20 30 3b 20 72 2e 74 | 20 3a 3d 20 30 3b 20 72 |= 0; r.t| := 0; r|
|000039b0| 2e 72 20 3a 3d 20 30 3b | 20 72 2e 62 20 3a 3d 20 |.r := 0;| r.b := |
|000039c0| 30 3b 0d 09 09 72 2e 70 | 6f 73 20 3a 3d 20 63 0d |0;...r.p|os := c.|
|000039d0| 09 45 4e 44 20 53 65 74 | 3b 0d 0d 09 50 52 4f 43 |.END Set|;...PROC|
|000039e0| 45 44 55 52 45 20 28 72 | 3a 20 53 74 64 52 65 61 |EDURE (r|: StdRea|
|000039f0| 64 65 72 29 20 52 65 61 | 64 56 69 65 77 20 28 56 |der) Rea|dView (V|
|00003a00| 41 52 20 76 3a 20 56 69 | 65 77 73 2e 56 69 65 77 |AR v: Vi|ews.View|
|00003a10| 29 3b 0d 09 09 56 41 52 | 20 63 3a 20 53 74 64 43 |);...VAR| c: StdC|
|00003a20| 6f 6e 74 65 78 74 3b 0d | 09 42 45 47 49 4e 0d 09 |ontext;.|.BEGIN..|
|00003a30| 09 63 20 3a 3d 20 72 2e | 70 6f 73 3b 0d 09 09 49 |.c := r.|pos;...I|
|00003a40| 46 20 63 20 3d 20 4e 49 | 4c 20 54 48 45 4e 20 63 |F c = NI|L THEN c|
|00003a50| 20 3a 3d 20 72 2e 66 6f | 72 6d 2e 63 6f 6e 74 65 | := r.fo|rm.conte|
|00003a60| 78 74 73 20 45 4c 53 45 | 20 63 20 3a 3d 20 63 2e |xts ELSE| c := c.|
|00003a70| 6e 65 78 74 20 45 4e 44 | 3b 0d 09 09 49 46 20 63 |next END|;...IF c|
|00003a80| 20 23 20 4e 49 4c 20 54 | 48 45 4e 0d 09 09 09 72 | # NIL T|HEN....r|
|00003a90| 2e 76 69 65 77 20 3a 3d | 20 63 2e 76 69 65 77 3b |.view :=| c.view;|
|00003aa0| 20 72 2e 6c 20 3a 3d 20 | 63 2e 6c 3b 20 72 2e 74 | r.l := |c.l; r.t|
|00003ab0| 20 3a 3d 20 63 2e 74 3b | 20 72 2e 72 20 3a 3d 20 | := c.t;| r.r := |
|00003ac0| 63 2e 72 3b 20 72 2e 62 | 20 3a 3d 20 63 2e 62 3b |c.r; r.b| := c.b;|
|00003ad0| 0d 09 09 09 72 2e 70 6f | 73 20 3a 3d 20 63 0d 09 |....r.po|s := c..|
|00003ae0| 09 45 4c 53 45 0d 09 09 | 09 72 2e 76 69 65 77 20 |.ELSE...|.r.view |
|00003af0| 3a 3d 20 4e 49 4c 3b 20 | 72 2e 6c 20 3a 3d 20 30 |:= NIL; |r.l := 0|
|00003b00| 3b 20 72 2e 74 20 3a 3d | 20 30 3b 20 72 2e 72 20 |; r.t :=| 0; r.r |
|00003b10| 3a 3d 20 30 3b 20 72 2e | 62 20 3a 3d 20 30 0d 09 |:= 0; r.|b := 0..|
|00003b20| 09 45 4e 44 3b 0d 09 09 | 76 20 3a 3d 20 72 2e 76 |.END;...|v := r.v|
|00003b30| 69 65 77 0d 09 45 4e 44 | 20 52 65 61 64 56 69 65 |iew..END| ReadVie|
|00003b40| 77 3b 0d 0d 0d 09 28 2a | 20 53 74 64 57 72 69 74 |w;....(*| StdWrit|
|00003b50| 65 72 20 2a 29 0d 0d 09 | 50 52 4f 43 45 44 55 52 |er *)...|PROCEDUR|
|00003b60| 45 20 28 77 3a 20 53 74 | 64 57 72 69 74 65 72 29 |E (w: St|dWriter)|
|00003b70| 20 53 65 74 20 28 70 6f | 73 3a 20 56 69 65 77 73 | Set (po|s: Views|
|00003b80| 2e 56 69 65 77 29 3b 0d | 09 09 56 41 52 20 63 3a |.View);.|..VAR c:|
|00003b90| 20 53 74 64 43 6f 6e 74 | 65 78 74 3b 0d 09 42 45 | StdCont|ext;..BE|
|00003ba0| 47 49 4e 0d 09 09 49 46 | 20 70 6f 73 20 3d 20 4e |GIN...IF| pos = N|
|00003bb0| 49 4c 20 54 48 45 4e 20 | 63 20 3a 3d 20 4e 49 4c |IL THEN |c := NIL|
|00003bc0| 20 45 4c 53 45 20 63 20 | 3a 3d 20 54 68 69 73 43 | ELSE c |:= ThisC|
|00003bd0| 6f 6e 74 65 78 74 28 77 | 2e 66 6f 72 6d 2c 20 70 |ontext(w|.form, p|
|00003be0| 6f 73 29 3b 20 41 53 53 | 45 52 54 28 63 20 23 20 |os); ASS|ERT(c # |
|00003bf0| 4e 49 4c 2c 20 32 30 29 | 20 45 4e 44 3b 0d 09 09 |NIL, 20)| END;...|
|00003c00| 77 2e 70 6f 73 20 3a 3d | 20 63 0d 09 45 4e 44 20 |w.pos :=| c..END |
|00003c10| 53 65 74 3b 0d 0d 09 50 | 52 4f 43 45 44 55 52 45 |Set;...P|ROCEDURE|
|00003c20| 20 28 77 3a 20 53 74 64 | 57 72 69 74 65 72 29 20 | (w: Std|Writer) |
|00003c30| 57 72 69 74 65 56 69 65 | 77 20 28 76 3a 20 56 69 |WriteVie|w (v: Vi|
|00003c40| 65 77 73 2e 56 69 65 77 | 3b 20 6c 2c 20 74 2c 20 |ews.View|; l, t, |
|00003c50| 72 2c 20 62 3a 20 4c 4f | 4e 47 49 4e 54 29 3b 0d |r, b: LO|NGINT);.|
|00003c60| 09 09 56 41 52 20 63 3a | 20 53 74 64 43 6f 6e 74 |..VAR c:| StdCont|
|00003c70| 65 78 74 3b 0d 09 42 45 | 47 49 4e 0d 09 09 41 53 |ext;..BE|GIN...AS|
|00003c80| 53 45 52 54 28 76 20 23 | 20 4e 49 4c 2c 20 32 30 |SERT(v #| NIL, 20|
|00003c90| 29 3b 20 41 53 53 45 52 | 54 28 76 2e 63 6f 6e 74 |); ASSER|T(v.cont|
|00003ca0| 65 78 74 20 3d 20 4e 49 | 4c 2c 20 32 32 29 3b 0d |ext = NI|L, 22);.|
|00003cb0| 09 09 41 53 53 45 52 54 | 28 6c 20 3c 3d 20 72 2c |..ASSERT|(l <= r,|
|00003cc0| 20 32 33 29 3b 20 41 53 | 53 45 52 54 28 74 20 3c | 23); AS|SERT(t <|
|00003cd0| 3d 20 62 2c 20 32 34 29 | 3b 0d 09 09 63 20 3a 3d |= b, 24)|;...c :=|
|00003ce0| 20 4e 65 77 43 6f 6e 74 | 65 78 74 28 77 2e 66 6f | NewCont|ext(w.fo|
|00003cf0| 72 6d 2c 20 76 2c 20 6c | 2c 20 74 2c 20 72 2c 20 |rm, v, l|, t, r, |
|00003d00| 62 29 3b 0d 09 09 49 46 | 20 77 2e 70 6f 73 20 3d |b);...IF| w.pos =|
|00003d10| 20 4e 49 4c 20 54 48 45 | 4e 0d 09 09 09 63 2e 6e | NIL THE|N....c.n|
|00003d20| 65 78 74 20 3a 3d 20 77 | 2e 66 6f 72 6d 2e 63 6f |ext := w|.form.co|
|00003d30| 6e 74 65 78 74 73 3b 20 | 77 2e 66 6f 72 6d 2e 63 |ntexts; |w.form.c|
|00003d40| 6f 6e 74 65 78 74 73 20 | 3a 3d 20 63 0d 09 09 45 |ontexts |:= c...E|
|00003d50| 4c 53 45 0d 09 09 09 63 | 2e 6e 65 78 74 20 3a 3d |LSE....c|.next :=|
|00003d60| 20 77 2e 70 6f 73 2e 6e | 65 78 74 3b 20 77 2e 70 | w.pos.n|ext; w.p|
|00003d70| 6f 73 2e 6e 65 78 74 20 | 3a 3d 20 63 0d 09 09 45 |os.next |:= c...E|
|00003d80| 4e 44 3b 0d 09 09 77 2e | 70 6f 73 20 3a 3d 20 63 |ND;...w.|pos := c|
|00003d90| 0d 09 45 4e 44 20 57 72 | 69 74 65 56 69 65 77 3b |..END Wr|iteView;|
|00003da0| 0d 0d 0d 09 28 2a 20 6f | 70 65 72 61 74 69 6f 6e |....(* o|peration|
|00003db0| 73 20 2a 29 0d 0d 09 50 | 52 4f 43 45 44 55 52 45 |s *)...P|ROCEDURE|
|00003dc0| 20 55 70 64 61 74 65 20 | 28 63 3a 20 53 74 64 43 | Update |(c: StdC|
|00003dd0| 6f 6e 74 65 78 74 29 3b | 0d 09 09 56 41 52 20 6d |ontext);|...VAR m|
|00003de0| 73 67 3a 20 55 70 64 61 | 74 65 4d 73 67 3b 0d 09 |sg: Upda|teMsg;..|
|00003df0| 42 45 47 49 4e 0d 09 09 | 6d 73 67 2e 6c 20 3a 3d |BEGIN...|msg.l :=|
|00003e00| 20 63 2e 6c 3b 20 6d 73 | 67 2e 74 20 3a 3d 20 63 | c.l; ms|g.t := c|
|00003e10| 2e 74 3b 20 6d 73 67 2e | 72 20 3a 3d 20 63 2e 72 |.t; msg.|r := c.r|
|00003e20| 3b 20 6d 73 67 2e 62 20 | 3a 3d 20 63 2e 62 3b 20 |; msg.b |:= c.b; |
|00003e30| 4d 6f 64 65 6c 73 2e 42 | 72 6f 61 64 63 61 73 74 |Models.B|roadcast|
|00003e40| 28 63 2e 66 6f 72 6d 2c | 20 6d 73 67 29 0d 09 45 |(c.form,| msg)..E|
|00003e50| 4e 44 20 55 70 64 61 74 | 65 3b 0d 0d 09 50 52 4f |ND Updat|e;...PRO|
|00003e60| 43 45 44 55 52 45 20 28 | 6f 70 3a 20 46 6f 72 6d |CEDURE (|op: Form|
|00003e70| 4f 70 29 20 44 6f 3b 0d | 09 09 56 41 52 20 66 3a |Op) Do;.|..VAR f:|
|00003e80| 20 53 74 64 4d 6f 64 65 | 6c 3b 20 63 2c 20 70 2c | StdMode|l; c, p,|
|00003e90| 20 70 6f 73 3a 20 53 74 | 64 43 6f 6e 74 65 78 74 | pos: St|dContext|
|00003ea0| 3b 0d 09 42 45 47 49 4e | 0d 09 09 28 2a 20 64 65 |;..BEGIN|...(* de|
|00003eb0| 6c 65 74 65 20 2a 29 0d | 09 09 70 6f 73 20 3a 3d |lete *).|..pos :=|
|00003ec0| 20 4e 49 4c 3b 0d 09 09 | 63 20 3a 3d 20 6f 70 2e | NIL;...|c := op.|
|00003ed0| 64 65 6c 3b 0d 09 09 49 | 46 20 63 20 23 20 4e 49 |del;...I|F c # NI|
|00003ee0| 4c 20 54 48 45 4e 0d 09 | 09 09 66 20 3a 3d 20 63 |L THEN..|..f := c|
|00003ef0| 2e 66 6f 72 6d 3b 20 41 | 53 53 45 52 54 28 66 20 |.form; A|SSERT(f |
|00003f00| 23 20 4e 49 4c 2c 20 31 | 30 30 29 3b 0d 09 09 09 |# NIL, 1|00);....|
|00003f10| 70 20 3a 3d 20 66 2e 63 | 6f 6e 74 65 78 74 73 3b |p := f.c|ontexts;|
|00003f20| 20 41 53 53 45 52 54 28 | 70 20 23 20 4e 49 4c 2c | ASSERT(|p # NIL,|
|00003f30| 20 31 30 31 29 3b 0d 09 | 09 09 49 46 20 70 20 3d | 101);..|..IF p =|
|00003f40| 20 63 20 54 48 45 4e 0d | 09 09 09 09 66 2e 63 6f | c THEN.|....f.co|
|00003f50| 6e 74 65 78 74 73 20 3a | 3d 20 63 2e 6e 65 78 74 |ntexts :|= c.next|
|00003f60| 0d 09 09 09 45 4c 53 45 | 0d 09 09 09 09 57 48 49 |....ELSE|.....WHI|
|00003f70| 4c 45 20 70 2e 6e 65 78 | 74 20 23 20 63 20 44 4f |LE p.nex|t # c DO|
|00003f80| 20 70 20 3a 3d 20 70 2e | 6e 65 78 74 3b 20 41 53 | p := p.|next; AS|
|00003f90| 53 45 52 54 28 70 20 23 | 20 4e 49 4c 2c 20 31 30 |SERT(p #| NIL, 10|
|00003fa0| 32 29 20 45 4e 44 3b 0d | 09 09 09 09 70 6f 73 20 |2) END;.|....pos |
|00003fb0| 3a 3d 20 70 3b 20 70 2e | 6e 65 78 74 20 3a 3d 20 |:= p; p.|next := |
|00003fc0| 63 2e 6e 65 78 74 0d 09 | 09 09 45 4e 44 3b 0d 09 |c.next..|..END;..|
|00003fd0| 09 09 63 2e 6e 65 78 74 | 20 3a 3d 20 4e 49 4c 3b |..c.next| := NIL;|
|00003fe0| 0d 09 09 09 55 70 64 61 | 74 65 28 63 29 0d 09 09 |....Upda|te(c)...|
|00003ff0| 45 4e 44 3b 0d 09 09 28 | 2a 20 69 6e 73 65 72 74 |END;...(|* insert|
|00004000| 20 2a 29 0d 09 09 63 20 | 3a 3d 20 6f 70 2e 69 6e | *)...c |:= op.in|
|00004010| 73 3b 0d 09 09 49 46 20 | 63 20 23 20 4e 49 4c 20 |s;...IF |c # NIL |
|00004020| 54 48 45 4e 0d 09 09 09 | 66 20 3a 3d 20 63 2e 66 |THEN....|f := c.f|
|00004030| 6f 72 6d 3b 20 41 53 53 | 45 52 54 28 66 20 23 20 |orm; ASS|ERT(f # |
|00004040| 4e 49 4c 2c 20 31 30 33 | 29 3b 0d 09 09 09 70 20 |NIL, 103|);....p |
|00004050| 3a 3d 20 66 2e 63 6f 6e | 74 65 78 74 73 3b 0d 09 |:= f.con|texts;..|
|00004060| 09 09 49 46 20 6f 70 2e | 70 6f 73 20 3d 20 4e 49 |..IF op.|pos = NI|
|00004070| 4c 20 54 48 45 4e 0d 09 | 09 09 09 63 2e 6e 65 78 |L THEN..|...c.nex|
|00004080| 74 20 3a 3d 20 66 2e 63 | 6f 6e 74 65 78 74 73 3b |t := f.c|ontexts;|
|00004090| 20 66 2e 63 6f 6e 74 65 | 78 74 73 20 3a 3d 20 63 | f.conte|xts := c|
|000040a0| 0d 09 09 09 45 4c 53 45 | 0d 09 09 09 09 63 2e 6e |....ELSE|.....c.n|
|000040b0| 65 78 74 20 3a 3d 20 6f | 70 2e 70 6f 73 2e 6e 65 |ext := o|p.pos.ne|
|000040c0| 78 74 3b 20 6f 70 2e 70 | 6f 73 2e 6e 65 78 74 20 |xt; op.p|os.next |
|000040d0| 3a 3d 20 63 0d 09 09 09 | 45 4e 44 3b 0d 09 09 09 |:= c....|END;....|
|000040e0| 63 2e 76 69 65 77 2e 49 | 6e 69 74 44 6f 6d 61 69 |c.view.I|nitDomai|
|000040f0| 6e 28 66 2e 64 6f 6d 61 | 69 6e 29 3b 0d 09 09 09 |n(f.doma|in);....|
|00004100| 55 70 64 61 74 65 28 63 | 29 0d 09 09 45 4e 44 3b |Update(c|)...END;|
|00004110| 0d 09 09 28 2a 20 73 77 | 61 70 20 69 6e 73 20 61 |...(* sw|ap ins a|
|00004120| 6e 64 20 64 65 6c 20 66 | 6f 72 20 75 6e 64 6f 20 |nd del f|or undo |
|00004130| 2a 29 0d 09 09 70 20 3a | 3d 20 6f 70 2e 64 65 6c |*)...p :|= op.del|
|00004140| 3b 20 6f 70 2e 64 65 6c | 20 3a 3d 20 6f 70 2e 69 |; op.del| := op.i|
|00004150| 6e 73 3b 20 6f 70 2e 69 | 6e 73 20 3a 3d 20 70 3b |ns; op.i|ns := p;|
|00004160| 20 6f 70 2e 70 6f 73 20 | 3a 3d 20 70 6f 73 0d 09 | op.pos |:= pos..|
|00004170| 45 4e 44 20 44 6f 3b 0d | 0d 09 50 52 4f 43 45 44 |END Do;.|..PROCED|
|00004180| 55 52 45 20 28 6f 70 3a | 20 52 65 73 69 7a 65 4f |URE (op:| ResizeO|
|00004190| 70 29 20 44 6f 3b 0d 09 | 09 56 41 52 20 63 3a 20 |p) Do;..|.VAR c: |
|000041a0| 53 74 64 43 6f 6e 74 65 | 78 74 3b 20 6c 2c 20 74 |StdConte|xt; l, t|
|000041b0| 2c 20 72 2c 20 62 3a 20 | 4c 4f 4e 47 49 4e 54 3b |, r, b: |LONGINT;|
|000041c0| 0d 09 42 45 47 49 4e 0d | 09 09 63 20 3a 3d 20 6f |..BEGIN.|..c := o|
|000041d0| 70 2e 63 6f 6e 74 65 78 | 74 3b 0d 09 09 28 2a 20 |p.contex|t;...(* |
|000041e0| 73 61 76 65 20 6f 6c 64 | 20 73 74 61 74 65 20 6f |save old| state o|
|000041f0| 66 20 63 6f 6e 74 65 78 | 74 20 2a 29 0d 09 09 6c |f contex|t *)...l|
|00004200| 20 3a 3d 20 63 2e 6c 3b | 20 74 20 3a 3d 20 63 2e | := c.l;| t := c.|
|00004210| 74 3b 20 72 20 3a 3d 20 | 63 2e 72 3b 20 62 20 3a |t; r := |c.r; b :|
|00004220| 3d 20 63 2e 62 3b 0d 09 | 09 55 70 64 61 74 65 28 |= c.b;..|.Update(|
|00004230| 63 29 3b 0d 09 09 28 2a | 20 73 65 74 20 6e 65 77 |c);...(*| set new|
|00004240| 20 73 74 61 74 65 20 6f | 66 20 63 6f 6e 74 65 78 | state o|f contex|
|00004250| 74 20 2a 29 0d 09 09 63 | 2e 6c 20 3a 3d 20 6f 70 |t *)...c|.l := op|
|00004260| 2e 6c 3b 20 63 2e 74 20 | 3a 3d 20 6f 70 2e 74 3b |.l; c.t |:= op.t;|
|00004270| 20 63 2e 72 20 3a 3d 20 | 6f 70 2e 72 3b 20 63 2e | c.r := |op.r; c.|
|00004280| 62 20 3a 3d 20 6f 70 2e | 62 3b 0d 09 09 55 70 64 |b := op.|b;...Upd|
|00004290| 61 74 65 28 63 29 3b 0d | 09 09 28 2a 20 6f 6c 64 |ate(c);.|..(* old|
|000042a0| 20 73 74 61 74 65 20 69 | 73 20 6e 65 77 20 75 6e | state i|s new un|
|000042b0| 64 6f 20 73 74 61 74 65 | 20 2a 29 0d 09 09 6f 70 |do state| *)...op|
|000042c0| 2e 6c 20 3a 3d 20 6c 3b | 20 6f 70 2e 74 20 3a 3d |.l := l;| op.t :=|
|000042d0| 20 74 3b 20 6f 70 2e 72 | 20 3a 3d 20 72 3b 20 6f | t; op.r| := r; o|
|000042e0| 70 2e 62 20 3a 3d 20 62 | 0d 09 45 4e 44 20 44 6f |p.b := b|..END Do|
|000042f0| 3b 0d 0d 09 50 52 4f 43 | 45 44 55 52 45 20 28 6f |;...PROC|EDURE (o|
|00004300| 70 3a 20 52 65 70 6c 61 | 63 65 56 69 65 77 4f 70 |p: Repla|ceViewOp|
|00004310| 29 20 44 6f 3b 0d 09 09 | 56 41 52 20 63 3a 20 53 |) Do;...|VAR c: S|
|00004320| 74 64 43 6f 6e 74 65 78 | 74 3b 20 76 69 65 77 3a |tdContex|t; view:|
|00004330| 20 56 69 65 77 73 2e 56 | 69 65 77 3b 0d 09 42 45 | Views.V|iew;..BE|
|00004340| 47 49 4e 0d 09 09 63 20 | 3a 3d 20 6f 70 2e 63 6f |GIN...c |:= op.co|
|00004350| 6e 74 65 78 74 3b 0d 09 | 09 28 2a 20 73 61 76 65 |ntext;..|.(* save|
|00004360| 20 6f 6c 64 20 73 74 61 | 74 65 20 6f 66 20 63 6f | old sta|te of co|
|00004370| 6e 74 65 78 74 20 2a 29 | 0d 09 09 76 69 65 77 20 |ntext *)|...view |
|00004380| 3a 3d 20 63 2e 76 69 65 | 77 3b 0d 09 09 28 2a 20 |:= c.vie|w;...(* |
|00004390| 73 65 74 20 6e 65 77 20 | 73 74 61 74 65 20 6f 66 |set new |state of|
|000043a0| 20 63 6f 6e 74 65 78 74 | 20 2a 29 0d 09 09 63 2e | context| *)...c.|
|000043b0| 76 69 65 77 20 3a 3d 20 | 6f 70 2e 76 69 65 77 3b |view := |op.view;|
|000043c0| 20 63 2e 76 69 65 77 2e | 49 6e 69 74 43 6f 6e 74 | c.view.|InitCont|
|000043d0| 65 78 74 28 63 29 3b 0d | 09 09 55 70 64 61 74 65 |ext(c);.|..Update|
|000043e0| 28 63 29 3b 0d 09 09 28 | 2a 20 6f 6c 64 20 73 74 |(c);...(|* old st|
|000043f0| 61 74 65 20 69 73 20 6e | 65 77 20 75 6e 64 6f 20 |ate is n|ew undo |
|00004400| 73 74 61 74 65 20 2a 29 | 0d 09 09 6f 70 2e 76 69 |state *)|...op.vi|
|00004410| 65 77 20 3a 3d 20 76 69 | 65 77 0d 09 45 4e 44 20 |ew := vi|ew..END |
|00004420| 44 6f 3b 0d 0d 0d 09 28 | 2a 2a 20 6d 69 73 63 65 |Do;....(|** misce|
|00004430| 6c 6c 61 6e 65 6f 75 73 | 20 2a 2a 29 0d 0d 09 50 |llaneous| **)...P|
|00004440| 52 4f 43 45 44 55 52 45 | 20 4e 65 77 2a 20 28 29 |ROCEDURE| New* ()|
|00004450| 3a 20 4d 6f 64 65 6c 3b | 0d 09 42 45 47 49 4e 0d |: Model;|..BEGIN.|
|00004460| 09 09 52 45 54 55 52 4e | 20 64 69 72 2e 4e 65 77 |..RETURN| dir.New|
|00004470| 28 29 0d 09 45 4e 44 20 | 4e 65 77 3b 0d 0d 09 50 |()..END |New;...P|
|00004480| 52 4f 43 45 44 55 52 45 | 20 43 6c 6f 6e 65 2a 20 |ROCEDURE| Clone* |
|00004490| 28 73 6f 75 72 63 65 3a | 20 4d 6f 64 65 6c 29 3a |(source:| Model):|
|000044a0| 20 4d 6f 64 65 6c 3b 0d | 09 09 56 41 52 20 73 74 | Model;.|..VAR st|
|000044b0| 3a 20 53 74 6f 72 65 73 | 2e 53 74 6f 72 65 3b 20 |: Stores|.Store; |
|000044c0| 6d 3a 20 4d 6f 64 65 6c | 3b 0d 09 42 45 47 49 4e |m: Model|;..BEGIN|
|000044d0| 0d 09 09 41 53 53 45 52 | 54 28 73 6f 75 72 63 65 |...ASSER|T(source|
|000044e0| 20 23 20 4e 49 4c 2c 20 | 32 30 29 3b 0d 09 09 73 | # NIL, |20);...s|
|000044f0| 74 20 3a 3d 20 53 74 6f | 72 65 73 2e 43 6c 6f 6e |t := Sto|res.Clon|
|00004500| 65 28 73 6f 75 72 63 65 | 29 3b 20 6d 20 3a 3d 20 |e(source|); m := |
|00004510| 73 74 28 4d 6f 64 65 6c | 29 3b 0d 09 09 6d 2e 49 |st(Model|);...m.I|
|00004520| 6e 69 74 46 72 6f 6d 28 | 73 6f 75 72 63 65 29 3b |nitFrom(|source);|
|00004530| 0d 09 09 52 45 54 55 52 | 4e 20 6d 0d 09 45 4e 44 |...RETUR|N m..END|
|00004540| 20 43 6c 6f 6e 65 3b 0d | 0d 09 50 52 4f 43 45 44 | Clone;.|..PROCED|
|00004550| 55 52 45 20 43 6f 70 79 | 2a 20 28 73 6f 75 72 63 |URE Copy|* (sourc|
|00004560| 65 3a 20 4d 6f 64 65 6c | 29 3a 20 4d 6f 64 65 6c |e: Model|): Model|
|00004570| 3b 0d 09 09 56 41 52 20 | 73 74 3a 20 53 74 6f 72 |;...VAR |st: Stor|
|00004580| 65 73 2e 53 74 6f 72 65 | 3b 20 6d 3a 20 4d 6f 64 |es.Store|; m: Mod|
|00004590| 65 6c 3b 0d 09 42 45 47 | 49 4e 0d 09 09 41 53 53 |el;..BEG|IN...ASS|
|000045a0| 45 52 54 28 73 6f 75 72 | 63 65 20 23 20 4e 49 4c |ERT(sour|ce # NIL|
|000045b0| 2c 20 32 30 29 3b 0d 09 | 09 73 74 20 3a 3d 20 53 |, 20);..|.st := S|
|000045c0| 74 6f 72 65 73 2e 43 6c | 6f 6e 65 28 73 6f 75 72 |tores.Cl|one(sour|
|000045d0| 63 65 29 3b 20 6d 20 3a | 3d 20 73 74 28 4d 6f 64 |ce); m :|= st(Mod|
|000045e0| 65 6c 29 3b 0d 09 09 6d | 2e 43 6f 70 79 41 6c 6c |el);...m|.CopyAll|
|000045f0| 46 72 6f 6d 28 73 6f 75 | 72 63 65 29 3b 0d 09 09 |From(sou|rce);...|
|00004600| 52 45 54 55 52 4e 20 6d | 0d 09 45 4e 44 20 43 6f |RETURN m|..END Co|
|00004610| 70 79 3b 0d 0d 09 50 52 | 4f 43 45 44 55 52 45 20 |py;...PR|OCEDURE |
|00004620| 47 65 74 52 65 63 74 2a | 20 28 76 3a 20 56 69 65 |GetRect*| (v: Vie|
|00004630| 77 73 2e 56 69 65 77 3b | 20 56 41 52 20 6c 2c 20 |ws.View;| VAR l, |
|00004640| 74 2c 20 72 2c 20 62 3a | 20 4c 4f 4e 47 49 4e 54 |t, r, b:| LONGINT|
|00004650| 29 3b 0d 09 28 2a 2a 0d | 09 09 76 20 23 20 4e 49 |);..(**.|..v # NI|
|00004660| 4c 09 32 30 0d 09 09 76 | 2e 63 6f 6e 74 65 78 74 |L.20...v|.context|
|00004670| 20 23 20 4e 49 4c 09 32 | 31 0d 09 09 76 2e 63 6f | # NIL.2|1...v.co|
|00004680| 6e 74 65 78 74 20 49 53 | 20 43 6f 6e 74 65 78 74 |ntext IS| Context|
|00004690| 09 32 32 0d 09 2a 2a 29 | 0d 09 42 45 47 49 4e 0d |.22..**)|..BEGIN.|
|000046a0| 09 09 41 53 53 45 52 54 | 28 76 20 23 20 4e 49 4c |..ASSERT|(v # NIL|
|000046b0| 2c 20 32 30 29 3b 20 41 | 53 53 45 52 54 28 76 2e |, 20); A|SSERT(v.|
|000046c0| 63 6f 6e 74 65 78 74 20 | 23 20 4e 49 4c 2c 20 32 |context |# NIL, 2|
|000046d0| 31 29 3b 20 41 53 53 45 | 52 54 28 76 2e 63 6f 6e |1); ASSE|RT(v.con|
|000046e0| 74 65 78 74 20 49 53 20 | 43 6f 6e 74 65 78 74 2c |text IS |Context,|
|000046f0| 20 32 32 29 3b 0d 09 09 | 76 2e 63 6f 6e 74 65 78 | 22);...|v.contex|
|00004700| 74 28 43 6f 6e 74 65 78 | 74 29 2e 47 65 74 52 65 |t(Contex|t).GetRe|
|00004710| 63 74 28 6c 2c 20 74 2c | 20 72 2c 20 62 29 0d 09 |ct(l, t,| r, b)..|
|00004720| 45 4e 44 20 47 65 74 52 | 65 63 74 3b 0d 09 09 0d |END GetR|ect;....|
|00004730| 09 50 52 4f 43 45 44 55 | 52 45 20 53 65 74 44 69 |.PROCEDU|RE SetDi|
|00004740| 72 2a 20 28 64 3a 20 44 | 69 72 65 63 74 6f 72 79 |r* (d: D|irectory|
|00004750| 29 3b 0d 09 28 2a 2a 20 | 64 20 23 20 4e 49 4c 09 |);..(** |d # NIL.|
|00004760| 32 30 20 2a 2a 29 0d 09 | 42 45 47 49 4e 0d 09 09 |20 **)..|BEGIN...|
|00004770| 41 53 53 45 52 54 28 64 | 20 23 20 4e 49 4c 2c 20 |ASSERT(d| # NIL, |
|00004780| 32 30 29 3b 20 64 69 72 | 20 3a 3d 20 64 0d 09 45 |20); dir| := d..E|
|00004790| 4e 44 20 53 65 74 44 69 | 72 3b 0d 0d 09 50 52 4f |ND SetDi|r;...PRO|
|000047a0| 43 45 44 55 52 45 20 49 | 6e 69 74 3b 0d 09 09 56 |CEDURE I|nit;...V|
|000047b0| 41 52 20 64 3a 20 53 74 | 64 44 69 72 65 63 74 6f |AR d: St|dDirecto|
|000047c0| 72 79 3b 0d 09 42 45 47 | 49 4e 0d 09 09 4e 45 57 |ry;..BEG|IN...NEW|
|000047d0| 28 64 29 3b 20 64 69 72 | 20 3a 3d 20 64 3b 20 73 |(d); dir| := d; s|
|000047e0| 74 64 44 69 72 20 3a 3d | 20 64 0d 09 45 4e 44 20 |tdDir :=| d..END |
|000047f0| 49 6e 69 74 3b 0d 0d 42 | 45 47 49 4e 0d 09 49 6e |Init;..B|EGIN..In|
|00004800| 69 74 0d 45 4e 44 20 46 | 6f 72 6d 4d 6f 64 65 6c |it.END F|ormModel|
|00004810| 73 2e 0d 82 f1 54 65 78 | 74 43 6f 6e 74 72 6f 6c |s....Tex|tControl|
|00004820| 6c 65 72 73 2e 53 74 64 | 43 74 72 6c 44 65 73 63 |lers.Std|CtrlDesc|
|00004830| 00 f1 54 65 78 74 43 6f | 6e 74 72 6f 6c 6c 65 72 |..TextCo|ntroller|
|00004840| 73 2e 43 6f 6e 74 72 6f | 6c 6c 65 72 44 65 73 63 |s.Contro|llerDesc|
|00004850| 00 f1 43 6f 6e 74 61 69 | 6e 65 72 73 2e 43 6f 6e |..Contai|ners.Con|
|00004860| 74 72 6f 6c 6c 65 72 44 | 65 73 63 00 f1 43 6f 6e |trollerD|esc..Con|
|00004870| 74 72 6f 6c 6c 65 72 73 | 2e 43 6f 6e 74 72 6f 6c |trollers|.Control|
|00004880| 6c 65 72 44 65 73 63 00 | f2 04 00 00 00 00 00 00 |lerDesc.|........|
|00004890| 00 14 00 00 00 00 00 00 | 00 09 00 00 00 00 00 00 |........|........|
|000048a0| 00 00 00 00 00 00 00 00 | 01 82 f1 54 65 78 74 52 |........|...TextR|
|000048b0| 75 6c 65 72 73 2e 53 74 | 64 52 75 6c 65 72 44 65 |ulers.St|dRulerDe|
|000048c0| 73 63 00 f1 54 65 78 74 | 52 75 6c 65 72 73 2e 52 |sc..Text|Rulers.R|
|000048d0| 75 6c 65 72 44 65 73 63 | 00 f2 03 00 00 00 00 00 |ulerDesc|........|
|000048e0| 00 00 ab 00 00 00 07 00 | 00 00 a3 00 00 00 00 00 |........|........|
|000048f0| 00 83 f1 54 65 78 74 52 | 75 6c 65 72 73 2e 53 74 |...TextR|ulers.St|
|00004900| 64 53 74 79 6c 65 44 65 | 73 63 00 f1 54 65 78 74 |dStyleDe|sc..Text|
|00004910| 52 75 6c 65 72 73 2e 53 | 74 79 6c 65 44 65 73 63 |Rulers.S|tyleDesc|
|00004920| 00 f2 07 00 00 00 00 00 | 00 00 00 00 00 00 08 00 |........|........|
|00004930| 00 00 5a 00 00 00 00 00 | 00 00 82 f1 54 65 78 74 |..Z.....|....Text|
|00004940| 52 75 6c 65 72 73 2e 41 | 74 74 72 69 62 75 74 65 |Rulers.A|ttribute|
|00004950| 73 44 65 73 63 00 f2 04 | 00 00 00 00 00 00 00 00 |sDesc...|........|
|00004960| 00 00 00 00 00 00 00 24 | 00 00 00 00 01 00 00 00 |.......$|........|
|00004970| 00 00 00 00 00 20 a3 5a | 00 00 00 00 00 18 f0 01 |..... .Z|........|
|00004980| 00 38 63 00 00 01 00 00 | 00 01 00 00 00 00 00 00 |.8c.....|........|
|00004990| 00 82 f2 0d 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000049a0| 00 00 00 22 00 00 00 00 | 00 00 00 00 00 00 00 00 |..."....|........|
|000049b0| 00 48 65 6c 76 65 74 69 | 63 61 00 7c be 01 00 00 |.Helveti|ca.|....|
|000049c0| 00 00 00 90 01 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000049d0| 00 e0 8c 01 00 e0 8c 01 | 00 60 d9 52 00 e0 b9 3b |........|.`.R...;|
|000049e0| 3e 82 f1 44 6f 63 75 6d | 65 6e 74 73 2e 43 6f 6e |>..Docum|ents.Con|
|000049f0| 74 72 6f 6c 6c 65 72 44 | 65 73 63 00 f2 11 00 00 |trollerD|esc.....|
|00004a00| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 08 00 00 |........|........|
|00004a10| 00 00 00 00 00 00 09 00 | 00 00 00 c0 5e 68 00 80 |........|....^h..|
|00004a20| 9c 97 00 80 fc 0a 00 00 | 2f 0d 00 00 49 5c 00 80 |........|/...I\..|
|00004a30| 6d 8a 00 01 00 00 00 00 | 00 00 00 00 00 00 00 00 |m.......|........|
|00004a40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004a50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004a60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004a70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004a80| 00 00 01 00 00 00 01 0c | 00 00 00 0c 00 00 00 32 |........|.......2|
|00004a90| 61 74 65 28 63 29 3b 0d | 09 09 28 2a 20 6f 6c 64 |ate(c);.|..(* old|
|00004aa0| 20 73 74 61 74 65 20 69 | 73 20 6e 65 77 20 75 6e | state i|s new un|
|00004ab0| 06 4d 6f 64 65 6c 73 4d | 02 00 00 00 50 61 72 74 |.ModelsM|....Part|
|00004ac0| 53 49 54 21 00 00 00 00 | 00 00 00 00 00 00 47 69 |SIT!....|......Gi|
|00004ad0| 00 00 50 61 72 74 53 49 | 54 21 00 00 00 00 00 00 |..PartSI|T!......|
|00004ae0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004af0| 00 00 ae 04 81 75 00 00 | 00 00 00 00 01 3e 28 6f |.....u..|.....>(o|
|00004b00| 70 3a 20 52 65 70 6c 61 | 63 65 56 69 65 77 4f 70 |p: Repla|ceViewOp|
|00004b10| 29 20 44 6f 3b 0d 09 09 | 56 41 52 20 63 3a 20 53 |) Do;...|VAR c: S|
|00004b20| 74 64 43 6f 6e 74 65 78 | 74 3b 20 76 69 65 77 3a |tdContex|t; view:|
|00004b30| 20 56 69 65 77 73 2e 56 | 69 65 77 3b 0d 09 42 45 | Views.V|iew;..BE|
|00004b40| 47 49 4e 0d 09 09 63 20 | 3a 3d 20 6f 70 2e 63 6f |GIN...c |:= op.co|
|00004b50| 6e 74 65 78 74 3b 0d 09 | 09 28 2a 20 73 61 76 65 |ntext;..|.(* save|
|00004b60| 20 6f 6c 64 20 73 74 61 | 74 65 20 6f 66 20 63 6f | old sta|te of co|
|00004b70| 6e 74 65 78 74 20 2a 29 | 0d 09 09 76 69 65 77 20 |ntext *)|...view |
|00004b80| 00 00 00 08 00 3a 00 40 | 01 cf 02 03 00 00 01 00 |.....:.@|........|
|00004b90| 00 00 01 0c 00 00 00 0c | 00 00 00 32 00 59 bb b8 |........|...2.Y..|
|00004ba0| 10 e6 00 00 00 1c 00 32 | 00 00 57 4e 53 50 00 00 |.......2|..WNSP..|
|00004bb0| 00 0a 00 01 ff ff 00 00 | 00 00 00 59 c0 f0 00 00 |........|...Y....|
|00004bc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004bd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004be0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004bf0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+